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

ユーザーエージェントとは何かについての わかり やすい 説明は次のとおりです。 com/

簡単に言うと、次のようにユーザー エージェントを作成できます。

「あなたのアプリ名/バージョンコード」

最後に、ExoPlayer を使用して mp3 をストリーミングする方法の説明: ExoPlayer を使用して mp3 をストリーミングする この例では、ローカルの mp3 ですが、唯一の違いは mp3 の URL とユーザー エージェントがないことです。お役に立てれば!

于 2015-07-27T07:49:48.080 に答える
0

これは、ExoPlayer Lib を使用して m3u8 ファイルをストリーミングする最も簡単な方法です。このコードを確認し、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 に答える