我正在使用带有循环功能的exoplayer,如下所示:
private fun prepareExoPlayerFromFileUri(uri: Uri, mediaView: SurfaceView) {
val exoPlayer = ExoPlayerFactory.newSimpleInstance(DefaultRenderersFactory(this), DefaultTrackSelector(null as BandwidthMeter?), DefaultLoadControl())
exoPlayer.setVideoSurfaceView(mediaView)
val dataSpec = DataSpec(uri)
val fileDataSource = FileDataSource()
try {
fileDataSource.open(dataSpec)
} catch (e: FileDataSource.FileDataSourceException) {
e.printStackTrace()
}
val factory = DataSource.Factory { fileDataSource }
val mediaSource = ExtractorMediaSource(fileDataSource.uri, factory, DefaultExtractorsFactory(), null, null)
exoPlayer.prepare(mediaSource)
exoPlayer.repeatMode = Player.REPEAT_MODE_ONE
exoPlayer.playWhenReady = true
}然而,过了一段时间后,我观察到视频刚刚停在最后一帧。我在日志中看不到任何与exoplayer相关的东西。
下面是我的设置:
华硕Tinkerboard与Marshmellow和一台电视通过HDMI端口连接。屏幕始终打开。
编辑:我在ExoPlayer存储库上创建了一个问题:https://github.com/google/ExoPlayer/issues/3239
发布于 2018-02-01 09:06:55
这似乎是由于音频轨道比视频轨道短造成的,而当时ExoPlayer的当前版本会因此而挂起。
ExoPlayer团队在ExoPlayer 2.6.0中发布的issue 1874中解决了这个问题,所以在最新版本中应该不会再发生这种情况。
https://stackoverflow.com/questions/46008431
复制相似问题