我必须尝试使用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视频,则没有问题。
我在两个设备中测试了相同的代码,一个是带有android 4.0.4的STB,另一个是带有android 4.0.3
的平板电脑华硕Transformer TF101。它在STB中工作但在ASUS Transformer中没有。
会有什么区别?
提前感谢您的时间! 感谢任何帮助!
答案 0 :(得分:0)
问题不在于.ts封装,问题在于视频的编纂。它有MPEG-2视频编码,但在Android上默认不支持。