如何解决E / ExoPlayerImplInternal:从本地存储播放.MP4文件时发生源错误
我正在从URL下载MP4文件并将其存储在本地,然后当我使用exoplayer播放视频时,它可以正常工作。但是当我使用seekbar来回移动时,它会抛出异常(尽管确实适用于某些视频)
2020-08-19 08:49:20.464 19968-20115/com.pearson.ppe E/ExoPlayerImplInternal: Source error
com.google.android.exoplayer2.ParserException: Invalid NAL length
at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.readSample(Mp4Extractor.java:542)
at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:192)
at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:982)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:391)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
它适用于某些视频,而不适用于某些其他视频(已选中可在PC上播放下载的视频,它始终有效)。
这是代码段
val controls: PlayerControlView = findViewById(R.id.controls)
controls.player = player
// Produces DataSource instances through which media data is loaded.
dataSourceFactory= DefaultDataSourceFactory(this,Util.getUserAgent(this,getString(R.string.app_name)))
val path = intent.getStringExtra("path")
// MediaSource representing the media to be played.
val uri = Uri.parse(path)
val videoSource: MediaSource = ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(uri)
player.prepare(videoSource)
player.playWhenReady = true
Exo-Player版本:
implementation 'com.google.android.exoplayer:exoplayer:2.11.4'
解决方法
此问题已在exoplayer git存储库中报告,您也可以从以下位置进行检查
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。