HlsMediaSource()方法已被弃用(我目前使用的是exoplayer:2.6.1)。建议使用什么方法来代替HLS-media?
HlsMediaSource()
exoplayer:2.6.1
ilmyapht1#
在深入研究了源代码之后,我得出结论
HlsMediaSource.Factory(dataFactory).createMediaSource(mediaUri)
才是正确的选择。
**编辑:**扩展到其他工厂
工厂模式也是按照2.6.1 release notes示例化ExtractorMediaSource、SsMediaSource、DashMediaSource和SingleSampleMediaSource的推荐方法。工厂方法简化了MediaSource的示例化,特别是当您希望配置可选参数,而将其他参数设置为默认值时,例如:
ExtractorMediaSource
SsMediaSource
DashMediaSource
SingleSampleMediaSource
MediaSource
DashMediaSource.Factory(chunkSourceFactory, manifestDataSourceFactory) .setManifestParser(new CustomManifestParser()) .createMediaSource(manifestUri, eventHandler, eventListener)
0x6upsns2#
如果找不到HlsMediaSource,则需要再添加一个依赖项:
implementation "com.google.android.exoplayer:exoplayer-hls:$exoplayer_version"
要实现它,我们需要类似于以下代码:
val userAgent = Util.getUserAgent(context, USER_AGENT) DefaultDataSourceFactory( context, userAgent ) val source = "https://some_url_link" val uri = source.toUri() HlsMediaSource.Factory(factory).createMediaSource(uri)
ux6nzvsh3#
您可以使用此方法来消除已弃用的
val dataSourceFactory = DefaultDataSourceFactory(this, "sample") ProgressiveMediaSource.Factory(dataSourceFactory) .createMediaSource(MediaItem.fromUri(Uri.parse(uri)))
nfzehxib4#
您应该使用最新版本:com.google.android.exoplayer:exoplayer:2.18.2此代码将为您工作:
com.google.android.exoplayer:exoplayer:2.18.2
val defaultHttpDataSourceFactory = DefaultHttpDataSource.Factory() val mediaItem = MediaItem.fromUri(URL) val mediaSource = HlsMediaSource.Factory(defaultHttpDataSourceFactory).createMediaSource(mediaItem) exoPlayer?.apply { setMediaSource(mediaSource) seekTo(playbackPosition) playWhenReady = playWhenReady prepare() }
4条答案
按热度按时间ilmyapht1#
在深入研究了源代码之后,我得出结论
才是正确的选择。
**编辑:**扩展到其他工厂
工厂模式也是按照2.6.1 release notes示例化
ExtractorMediaSource
、SsMediaSource
、DashMediaSource
和SingleSampleMediaSource
的推荐方法。工厂方法简化了
MediaSource
的示例化,特别是当您希望配置可选参数,而将其他参数设置为默认值时,例如:0x6upsns2#
如果找不到HlsMediaSource,则需要再添加一个依赖项:
要实现它,我们需要类似于以下代码:
ux6nzvsh3#
您可以使用此方法来消除已弃用的
nfzehxib4#
您应该使用最新版本:
com.google.android.exoplayer:exoplayer:2.18.2
此代码将为您工作: