1

我正在尝试从 RTSP 服务器流式传输视频。我想在我的应用程序中运行视频。我尝试了三种不同的方法,但似乎只有一种有效:

  1. 使用 VideoView(不起作用)。
  2. 使用本机播放器(作品)。
  3. 使用 MediaPlayer(不起作用)。

我想在 MediaPlayer 上显示视频,但无法做到。

这是代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    /* 1. Using VideoView, error: "Cannot play video"
    VideoView vidView = (VideoView) findViewById(R.id.myVideo);

    String vidAdress = "rtsp://10.42.0.91:5554/camera";
    Uri vidUri = Uri.parse(vidAdress);

    vidView.setVideoURI(vidUri);

    vidView.start();

    */

    //Using native player (implicit intent), works.
    String mediaURL = "rtsp://10.42.0.91:5554/camera";
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mediaURL));
    startActivity(intent);

    /* Using MediaPlayer (doesn't work). Error: "Cannot create MediaPlayer"
and setDataSource.
    setVolumeControlStream(AudioManager.STREAM_MUSIC);
    mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

    try
    {
        mediaPlayer.setDataSource("rtsp://10.42.0.91:5554/camera");
        mediaPlayer.prepare();
        mediaPlayer.start();
    }
    catch (IOException ex)
    {
        ex.printStackTrace();
    }
    */

http:10.42.0.91:8080/playlist.m3u 看起来像这样:

#EXTM3U

#PLAYLIST:RTSP 摄像机服务器 #EXTINF:-1,活动摄像机 rtsp://10.42.0.91:5554/camera #EXTINF:319,2016 年 3 月 3 日下午 3:08:35 MB rtsp://10.42.0.91: 5554/record160303_1500 #EXTINF:1047,3/3/16 PM 2:15:106.4 MB rtsp://10.42.0.91:5554/record160303_1400 #EXTINF:1364,所有记录 141.4 MB rtsp://10.42.0.91:5554/记录#EXTINF:-1,后置摄像头rtsp://10.42.0.91:5554/back #EXTINF:-1,前置摄像头rtsp://10.42.0.91:5554/front

4

1 回答 1

0

我刚刚完成了一个可以在 Android MediaPlayer 中显示 RTSP H.264(Even high profile)的基本应用程序。当我看到这个视频时,我正在试验和研究我应该如何实现它。它很容易实现,并且还提供了源代码。我使用的是 Android 5.1.1 版本,它似乎不适用于 4.4 及以下版本。我的目标是让它在 4.1 及更高版本上运行,所以当我开始工作时我会编辑或评论。

我希望这能解释你需要的一切。告诉我它是否仍然不起作用,我会尽力帮助你。

于 2016-03-04T16:30:23.490 回答