如何在 android 中实现 Exoplayer 2.11.1? [英] How to implement Exoplayer 2.11.1 in android?
问题描述
我正在尝试实现 exoplayer 这是我的 exoplayer
版本>
i am trying to implement exoplayer this is my exoplayer
version
implementation 'com.google.android.exoplayer:exoplayer:2.11.1'
我正在创建一个音乐播放器应用程序,但我对 exoplayer
一无所知我无法理解官方文档中的任何内容.
i am creating a music player app and i don't know anything about exoplayer
i am trying to implement exoplayer
from last 2 days but it's not working. i couldn't understand anything in the official documentation .
我找到了很多示例和教程,但都是关于使用 exoplayer
播放视频.许多示例都在使用已弃用的方法.
i find many example and tutorial but it's all about playing video using exoplayer
. many example's are using deprecated methods.
我正在尝试使用这个 教程 但许多方法已被弃用,因此无法正常工作例.
I am trying to implement using this tutorial but many of methods are deprecated so it's not working EX.
simpleExoplayer = ExoPlayerFactory.newSimpleInstance(
DefaultRenderersFactory(this),
DefaultTrackSelector(adaptiveTrackSelectionFactory),
DefaultLoadControl()
)
谁能建议我从哪里开始或如何使用最新版本的 exoplayer
构建音乐流媒体应用.
can anyone suggest me where to start or how do i build music streaming app using latest version of exoplayer
.
任何帮助将不胜感激.
推荐答案
通过新的更新,您可以使用 SimpleExoPlayer.Builder
创建一个简单的播放器实例:
With the new update, you can create a simple player instance using SimpleExoPlayer.Builder
:
simpleExoplayer = SimpleExoPlayer.Builder(context).build()
您还可以为 Builder
提供不同的参数.请参阅 https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.Builder.html
You can also supply the Builder
with different arguments. See https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.Builder.html
您可以使用我创建的这个简单的自定义类来帮助您入门.
You can use this simple custom class I created to help you get started.
class ExoPlayerHelper(
private val playerView: PlayerView,
onError: (ExoPlaybackException) -> Unit,
onPlayerBuffer: (Boolean) -> Unit
) {
private var exoPlayer: ExoPlayer? = null
private var mediaSource: ProgressiveMediaSource? = null
private val playerListener = object : Player.EventListener {
override fun onPlayerError(error: ExoPlaybackException) {
super.onPlayerError(error)
onError(error)
}
override fun onPlayerStateChanged(playWhenReady: Boolean, playbackState: Int) {
super.onPlayerStateChanged(playWhenReady, playbackState)
onPlayerBuffer(playbackState == Player.STATE_BUFFERING)
}
}
fun initializePlayer(url: String) {
exoPlayer = SimpleExoPlayer.Builder(playerView.context).build()
exoPlayer!!.repeatMode = Player.REPEAT_MODE_ALL
exoPlayer!!.addListener(playerListener)
playerView.player = exoPlayer
val userAgent =
Util.getUserAgent(playerView.context, playerView.context.getString(R.string.app_name))
mediaSource = ProgressiveMediaSource
.Factory(
DefaultDataSourceFactory(playerView.context, userAgent),
DefaultExtractorsFactory()
)
.createMediaSource(Uri.parse(url))
exoPlayer!!.prepare(mediaSource!!, true, false)
exoPlayer!!.playWhenReady = true
}
private fun killPlayer() {
if (exoPlayer != null) {
exoPlayer!!.release()
exoPlayer = null
mediaSource = null
playerView.player = null
}
}
}
这篇关于如何在 android 中实现 Exoplayer 2.11.1?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!