播放传输流MediaPlayer android

时间:2015-02-24 17:54:34

标签: android android-mediaplayer transport-stream

我必须尝试使用​​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的设备上,但我找到了这些参考 URL1URL2 例如,如果我在VLC中播放.ts视频,则没有问题。

我在两个设备中测试了相同的代码,一个是带有android 4.0.4的STB,另一个是带有android 4.0.3的平板电脑华硕Transformer TF101。它在STB中工作但在ASUS Transformer中没有。 会有什么区别?

提前感谢您的时间! 感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

问题不在于.ts封装,问题在于视频的编纂。它有MPEG-2视频编码,但在Android上默认不支持。