【问题标题】:Playing transport stream MediaPlayer android播放传输流 MediaPlayer android
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多