ExoPlayer 2.18.4 无法播放某些视频和音频

问题描述 投票:0回答:0

我想更新 playstore 中的一个旧应用程序(将近 3 年)。除了这个 ExoPlayer 库之外,我已经修复了不推荐使用的代码和库。我遵循了这个tutorial并且它没有问题。但是当我使用我的实际 mp3/mp4 文件时,我遇到了一个对我来说是新的错误。我已经在互联网上搜索过这个问题,但没有运气。

这是我的代码

   private lateinit var binding: PlayerActivityBinding
    private var exoPlayer: ExoPlayer? = null
    private var playbackPosition = 0L
    private var playWhenReady = true

// some override ...

  private fun preparePlayer() {
        exoPlayer = ExoPlayer.Builder(this).build()
        exoPlayer?.playWhenReady = true
        binding.playerView.player = exoPlayer
        val defaultHttpDataSourceFactory = DefaultHttpDataSource.Factory()
        val mediaItem = MediaItem.fromUri(URL)
        val mediaSource =
            DashMediaSource.Factory(defaultHttpDataSourceFactory).createMediaSource(mediaItem)
        exoPlayer?.setMediaSource(mediaSource)
        exoPlayer?.seekTo(playbackPosition)
        exoPlayer?.playWhenReady = playWhenReady
        exoPlayer?.prepare()
    }

    private fun  releasePlayer(){
        exoPlayer?.let { player ->
            playbackPosition = player.currentPosition
            playWhenReady = player.playWhenReady
            player.release()
            exoPlayer = null
        }
    }

companion object{
        const val URL =
            "https://bitmovin-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd"
    }

我的实际媒体文件 http://mgb-sda-lyrics.com/media_files/10000_reasons_blessed_the_lord.mp3

这里是例外

V/FA: Recording user engagement, ms: 4488
V/FA: Activity paused, time: 213679361
V/FA: onActivityCreated
D/mgb.com.sdalyricsplus.newActivities.NewKaraokePage: onCreate: *******************************************
I/ExoPlayerImpl: Init d76898c [ExoPlayerLib/2.18.4] [2027, V2032, vivo, 31]
V/FA: Activity resumed, time: 213679574
I/XDR::VRT: sc is not valid!
V/ImeFocusController: onWindowFocus: DecorView@95743fd[NewKaraokePage] softInputMode=STATE_UNSPECIFIED|ADJUST_PAN|IS_FORWARD_NAVIGATION
D/ImeFocusController: onViewFocusChanged, view=DecorView@95743fd[NewKaraokePage], mServedView=null
V/ImeFocusController: checkFocus: view=null next=DecorView@95743fd[NewKaraokePage] force=false package=<none>
D/OpenGLRenderer: endAllActiveAnimators on 0xb4000078f8ab1290 (CardView) with handle 0xb4000078089fcab0
E/ExoPlayerImplInternal: Playback error
      com.google.android.exoplayer2.ExoPlaybackException: Source error
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:644)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:614)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loopOnce(Looper.java:233)
        at android.os.Looper.loop(Looper.java:334)
        at android.os.HandlerThread.run(HandlerThread.java:67)
     Caused by: com.google.android.exoplayer2.ParserException
        at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:112)
        at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:66)
        at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:176)
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
        at java.lang.Thread.run(Thread.java:1012)
     Caused by: org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position:TEXT @4:363 in java.io.InputStreamReader@f6ba349) 
        at com.android.org.kxml2.io.KXmlParser.readEntity(KXmlParser.java:1220)
        at com.android.org.kxml2.io.KXmlParser.readValue(KXmlParser.java:1402)
        at com.android.org.kxml2.io.KXmlParser.next(KXmlParser.java:393)
        at com.android.org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
        at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:104)
        at com.google.android.exoplayer2.source.dash.manifest.DashManifestParser.parse(DashManifestParser.java:66) 
        at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:176) 
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) 
        at java.lang.Thread.run(Thread.java:1012) 

摇篮

    implementation 'com.google.android.exoplayer:exoplayer:2.18.4'
    implementation 'androidx.media3:media3-exoplayer-ima:1.0.0'
    implementation 'com.google.android.exoplayer:extension-ima:2.18.4'

请注意,旧版本的 exoplayer 正在处理我实际的 mp3 文件。但在这个最新版本中,它不会。

android-studio kotlin exoplayer2.x
© www.soinside.com 2019 - 2024. All rights reserved.