10

Exoplayer 库对我来说似乎很复杂。谁能帮助我如何使用 exoplayer 库流式传输广播电台 url?我尝试使用 MediaPlayer ,它工作正常,但花了很多时间来准备。这是我尝试过的。

    exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT);

    Allocator allocator = new DefaultAllocator(BUFFER_SEGMENT_SIZE);
    DataSource dataSource = new DefaultUriDataSource(getApplicationContext(), null, userAgent);
    Mp3Extractor extractor = new Mp3Extractor();
    ExtractorSampleSource sampleSource = new ExtractorSampleSource(
            uri, dataSource, extractor, allocator, BUFFER_SEGMENT_COUNT * BUFFER_SEGMENT_SIZE);
     MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource);
    exoPlayer.prepare(audioRenderer);

    exoPlayer.setPlayWhenReady(true);

我不明白如何获取 userAgent 以及它的含义是什么?

4

3 回答 3

6

这是对用户代理的一个很好的描述: 用户代理 这里还有一个用户代理应该是什么样子的定义: 用户代理头的结构 这里你可以看到你的浏览器的用户代理是什么样子的: http://whatsmyuseragent。 com/

简单地说,您可以像这样创建用户代理:

“你的应用程序名称/版本代码”

最后是关于如何使用 ExoPlayer 流式传输 mp3 的描述: 使用 ExoPlayer 流式传输 mp3 此示例中,虽然它是本地 mp3,但唯一的区别应该是 mp3 的 url 和缺少的用户代理。希望这可以帮助!

于 2015-07-27T07:49:48.080 回答
0

这是使用 ExoPlayer Lib 流式传输 m3u8 文件的最简单方法。检查此代码,不要忘记将 URL 更改为您的 URL,并更改内容类型,因为自爆代码希望对 https://github.com/karim23/SimpleStreamPlayer/tree/master有所帮助

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    context = getApplicationContext();
    setContentView(R.layout.activity_main);
    //change the live streaming URL with yours. 
    contentUri = /*"Your mp3 URL.."*/;
    // contentType = DemoUtil.TYPE_MP3;
    final Intent intent = new Intent(context, VideoPlayerActivity.class).setData(Uri.parse(contentUri))
            .putExtra(VideoPlayerActivity.CONTENT_ID_EXTRA, -1)
            //Change the type according to the live streaming extension.
            .putExtra(VideoPlayerActivity.CONTENT_TYPE_EXTRA, DemoUtil.TYPE_MP3);
    liveStreamingTv =(TextView)findViewById(R.id.mainActivity_liveStreamingTv);
    liveStreamingTv.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(intent);
        }
    });
}
于 2015-07-29T18:39:45.263 回答
0

编解码器有问题,exoPlayer 不支持 aac+

于 2015-07-29T21:23:21.183 回答