【发布时间】:2015-02-24 17:54:34
【问题描述】:
我必须尝试使用 MediaPlayer 播放 .ts 视频,但似乎无法播放。
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i2) {
Surface surface = new Surface(surfaceTexture);
try {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(this, Uri.parse(URI));
mMediaPlayer.setSurface(surface);
mMediaPlayer.setLooping(true);
mMediaPlayer.prepareAsync();
// Play video when the media source is ready for playback.
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
} catch (IllegalArgumentException e) {
Log.d(TAG, e.getMessage());
} catch (SecurityException e) {
Log.d(TAG, e.getMessage());
} catch (IllegalStateException e) {
Log.d(TAG, e.getMessage());
} catch (IOException e) {
Log.d(TAG, e.getMessage());
}
}
我的测试是在 Android 4 以上的设备上进行的,但我找到了这些参考资料 URL1, URL2 例如,如果我在 VLC 中播放 .ts 视频,就没有问题。
我在两台设备上测试了相同的代码,一台是安卓 4.0.4 的机顶盒,另一台是平板电脑 ASUS Transformer TF101,android 4.0.3。它适用于 STB,但不适用于 ASUS Transformer。
会有什么不同?
提前感谢您的宝贵时间! 感谢任何帮助!
【问题讨论】:
标签: android android-mediaplayer transport-stream