我有一个Android项目,我需要构建一个客户端应用程序来接收UDP或RTP单播视频流并播放它们.不幸的是,我似乎无法让这个工作,并广泛搜索解决方案!
我正在测试Xoom(Android 3.2)和Nexus S(Android 2.3.6)并且知道他们可以在使用MX Player(第三方媒体播放器应用程序)作为客户端时播放内容,但我不能让本机媒体播放器播放内容.我尝试过使用简单的VideoView和MediaPlayer,但都失败了相同的错误代码,我真的找不到任何有用的信息.
该视频采用带有aac音频的H.264编码.
此外,服务器是我无法访问的第三方解决方案(除了指定udp或rtp),但正如我所说,使用MX Player时,可以播放流.
这是我的代码的媒体播放器部分:
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
MediaPlayer player = new MediaPlayer();
SurfaceView surface = (SurfaceView) findViewById(R.id.video);
player.setDisplay(surface.getHolder());
player.setDataSource(this, Uri.parse("udp://192.168.0.78:1234"));
player.prepare();
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
Log.d("SimpleVideoPlayer", "Starting player");
mp.start();
}
});
player.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.d("SimpleVideoPlayer", "error with code: " + what);
return false;
} …
Run Code Online (Sandbox Code Playgroud)