播放传输流MediaPlayer android

问题描述 投票:0回答:1

我必须尝试使用​​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中没有。有什么区别?

在此先感谢您的时间!感谢任何帮助!

android android-mediaplayer transport-stream
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.