Exoplayer停止循环

时间:2017-09-01 21:57:02

标签: android exoplayer

我正在使用带有循环功能的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相关的日志中看到任何内容。

这是我的设置:

Asus Tinkerboard与Marshmellow和通过HDMI端口连接的电视。屏幕始终开启。

编辑:我在ExoPlayer repo上创建了一个问题: https://github.com/google/ExoPlayer/issues/3239

1 个答案:

答案 0 :(得分:0)

似乎这是由比视频轨道短的音频轨道引起的,当时ExoPlayer的当前版本会因此而挂起。

ExoPlayer团队在issue 1874中解决了这个问题,该问题已在ExoPlayer 2.6.0中发布,因此不应再在最新版本上发生。