ExoPlayer 不适用于某些流
ExoPlayer not working for some streams
我有这种类型的流:http://radiohoryzont.jgora.pl:8050。
问题是,当我尝试使用 ExoPlayer 播放它时,抛出了以下异常。
E/ExoPlayerImplInternal: Internal track renderer error.
com.google.android.exoplayer.ExoPlaybackException:
com.google.android.exoplayer.upstream.HttpDataSource$HttpDataSourceException:
Unable to connect to http://radiohoryzont.jgora.pl:8050
奇怪的是,在另一部手机 phone 上它似乎可以正常工作(它在 Android 6 上工作,但在 Android 4 上不工作)。有人可以帮我吗?
我正在使用 EMAudioPlayer。
mediaPlayer = new EMAudioPlayer(getApplicationContext());
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myURI);
在此先感谢您的帮助。
我最近一直在解决同样的问题并找到了解决方案。
对你来说失败的 URL 是一个 ShoutCast,它们不能很好地与 Android 上的 HttpDataSource
4. 但是,如果你设法用 [=11= 替换它], 数据将被正确检索。
您正在使用 EMAudioPlayer
,它使用 ExoPlayer
播放音乐(适用于 API 16 级以上)。您可以轻松地将 HttpDataSource
替换为 OkHttpDataSource
:
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);
我有这种类型的流:http://radiohoryzont.jgora.pl:8050。 问题是,当我尝试使用 ExoPlayer 播放它时,抛出了以下异常。
E/ExoPlayerImplInternal: Internal track renderer error. com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to http://radiohoryzont.jgora.pl:8050
奇怪的是,在另一部手机 phone 上它似乎可以正常工作(它在 Android 6 上工作,但在 Android 4 上不工作)。有人可以帮我吗?
我正在使用 EMAudioPlayer。
mediaPlayer = new EMAudioPlayer(getApplicationContext());
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myURI);
在此先感谢您的帮助。
我最近一直在解决同样的问题并找到了解决方案。
对你来说失败的 URL 是一个 ShoutCast,它们不能很好地与 Android 上的 HttpDataSource
4. 但是,如果你设法用 [=11= 替换它], 数据将被正确检索。
您正在使用 EMAudioPlayer
,它使用 ExoPlayer
播放音乐(适用于 API 16 级以上)。您可以轻松地将 HttpDataSource
替换为 OkHttpDataSource
:
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);