Android 通过 ExoPlayer 流式传输

Android stream over ExoPlayer

我正在尝试从 MediaPlayer 切换到 ExoPlayer 但我找不到任何更新的演示我如何使用 it.I 认为他们已经删除了 FrameworkSampleSource 方法。我从 Github 下载了演示,但找不到播放器的实现,我可以找到添加 URL 的 Samples 对象。 我有一个 URL 的列表,我想成为 played.I 我正在切换到 ExoPlayer 因为它比 MediaPlayer.I 阅读了所有关于 ExoPlayer 的 Whosebug 主题但 none 更流畅已更新。

任何人都可以给我一个如何实现的例子吗?谢谢。

    FrameworkSampleSource source = new FrameworkSampleSource(App.getContext(), track.Uri, null, 1);
    TrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(source, null, true);
    exoPlayer.prepare(audioRenderer);

希望这个简短的例子对您有所帮助

如果您正在寻找一个简单的实现,我已经从 ExoPlayer Demo 中创建了更易于阅读的简单应用程序。

Link : https://github.com/Gujarats/AndroidVideoPlayer/tree/master/app/src/main
您需要查看这些文件以便更好地理解:

  • 布局:test_player.xml
  • TestPlayerActivity
  • 测试播放器控制器

我已经对其进行了测试并通过 HTTP 播放了 .mp4 文件。

我今天不得不用 ExoPlayer 替换 MediaPlayer 来制作一个广播流媒体应用程序。我做了一个 post about it 以防它对任何人有帮助。 它使用 MediaCodecAudioTrackRenderer 和 ExtractorSampleSource(因为不推荐使用 FrameworkSampleSource)。

            Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
            String userAgent = Util.getUserAgent(context, "ExoPlayerDemo");
            DataSource dataSource = new DefaultUriDataSource(context, null, userAgent);
            ExtractorSampleSource sampleSource = new ExtractorSampleSource(
                    radioUri, dataSource, allocator, BUFFER_SEGMENT_SIZE * BUFFER_SEGMENT_COUNT);
            audioRenderer = new MediaCodecAudioTrackRenderer(
                    sampleSource);

            exoPlayer.prepare(audioRenderer);