android - 无法在android中使用videoview播放rtsp

标签 android rtsp

我已经使用 VLC 设置了一个 RTSP 服务器。然后我写了一个应用程序,这是我的代码:

package com.ashley.work;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.app.Activity;  
import android.net.Uri;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.VideoView;  


public class TestPlayRTSP extends Activity {

Button playButton ;  
VideoView videoView ;  

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test_play_rtsp);

    videoView = (VideoView)this.findViewById(R.id.myvideoview);  

    playButton = (Button)this.findViewById(R.id.button1);  
    playButton.setOnClickListener(new Button.OnClickListener(){  
    public void onClick(View v) {  
    PlayRtspStream("rtsp://140.xxx.xxx.xxx:8554/");  
    }  
    });  


}

private void PlayRtspStream(String rtspUrl){  
    videoView.setVideoURI(Uri.parse(rtspUrl));  
    videoView.requestFocus();  
    videoView.start();  
}  

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_test_play_rtsp, menu);
    return true;
}

并且我已经设置了权限。但是这样还是不能玩。单击按钮后没有任何反应。但是,如果我将 rtsp 替换为其他这两个:

  1. rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp

  2. rtsp://v5.cache1.c.youtube.com/CjYLENy73wIaLQnhycnrJQ8qmRMYESARFEIJbXYtZ29vZ2xlSARSBXdhdGNoYPj_hYjnq6uUTQw=/0/0/0/video.3gp

应用程序将正常播放。谁能告诉我为什么?有没有播放 VLC 流的解决方案???

谢谢

最佳答案

Android 实际上只支持正确设置 MOOV 原子的 mpeg 4 编码基线配置文件。较新的设备支持其他方法(HLS 和更高配置的 mpeg4 类型),但并非所有设备都能以这种方式工作。您的 rtsp 流必须使用基线配置文件进行编码。

如果您在 VLC 中打开您的 RTSP 流并打开您的网络流,然后打开媒体信息,您可以看到您的流用于音频和视频的编解码器

这里是关于 android 和支持的媒体的更多权威信息:http://developer.android.com/guide/appendix/media-formats.html#recommendations

关于android - 无法在android中使用videoview播放rtsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13291632/

相关文章:

android - 更改适配器数据后如何更新 GridView

streaming - 将 RTSP 流转换为 RTMP 流

ffmpeg - LIVE555 RTSP H.264 原始视频文件流 - ffplay 错误

Java android ImageView 具有缩放功能

java - Admob 广告未在我的应用中显示

android - 如何从 Delphi 访问 KeyCharacterMap.getEvents 函数返回的元素?

android - VLC RTSP 直播到 Android

javascript - 是否可以在 Electron 应用程序中从相机流式传输 RTSP(实时)视频?

c# - 有没有这样的RTSP Ping?

android - 短信正文在android中无法正确显示