2016-11-06 18 views
3

私はこのタイプのストリームを持っています:http://radiohoryzont.jgora.pl:8050。 問題は、ExoPlayerを使用して再生しようとすると、例外がスローされるということです。一部のストリームでExoPlayerが動作しない

E/ExoPlayerImplInternal:内部トラックレンダラエラー。 com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.upstream.HttpDataSource $ HttpDataSourceException: 接続することができません奇妙なことは、それが他の携帯電話で、それはようですが、ある

http://radiohoryzont.jgora.pl:8050へ(Android 6で動作していますが、Android 4では動作していません)。誰かが私を助けてくれましたか?

私はEMAudioPlayerを使用しています。

mediaPlayer = new EMAudioPlayer(getApplicationContext()); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(getApplicationContext(), myURI); 

ご協力いただきありがとうございます。

+0

'HTTP交換してみてください://'あなたのリンクで: '氷ので//'を。これは、[** Github **](https://github.com/google/ExoPlayer/issues/1003)のExoPlayer Issueのページによるものです。とにかく、あなたのラジオ・リンクは、MP3オーディオ(44.1khz、128k、ステレオなど)を提供しているので、Android 4デバイスがオーディオ・パートを再生できない理由はありません。 –

+0

また、試してみる価値があります(テストされていません)...基本的なMP3再生コードを作成しますが、いくつかの記憶域の代わりにMP3 URIは 'http://radiohoryzont.jgora.pl:8050 /;'を使用します(URLの最後にセミコロンが追加されています) 。また、通常のAndroid SDK(例: 'MediaPlayer' API)のコードで、通常のMP3再生に使用されるように試してみてください...幸いです。 –

+0

@ VC.Oneがicy://に置き換えられていません。 – Tom11

答えて

4

私は最近、まったく同じ問題を解決しており、解決策を見つけました。

あなたが失敗したURLはShoutCastで、Android 4ではHttpDataSourceとうまく機能しません。ただし、これをOkHttpDataSourceに置き換えると、データが正しく取得されます。

EMAudioPlayerを使用しています。ExoPlayerを使用して音楽をストリーミングします(APIレベル16+の場合)。あなたは簡単にOkHttpDataSourceHttpDataSourceを置き換えることができます。

 

    TrackSelector trackSelector = new DefaultTrackSelector(
     new Handler(), 
     new AdaptiveVideoTrackSelection.Factory(
      new DefaultBandwidthMeter() 
     ) 
    ); 
    mediaPlayer = ExoPlayerFactory.newSimpleInstance(
     getApplicationContext(), 
     trackSelector, 
     new DefaultLoadControl() 
    ); 
    MediaSource source = new ExtractorMediaSource(
     myURI, 
     new OkHttpDataSourceFactory(
      new OkHttpClient(), 
      userAgent, 
      null 
     ), 
     new DefaultExtractorsFactory(), 
     null, 
     null 
    ); 
    mediaPlayer.prepare(source); 
    mediaPlayer.setPlayWhenReady(true); 

+0

素晴らしい、ありがとう! – Tom11

関連する問題