2017-09-01 6 views
0

J'utilise exoplayer avec boucle fonction comme suit:Exoplayer cesse en boucle

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 
} 

Cependant, après un certain temps je constate que la vidéo vient d'arrêter au dernier cadre. Je ne vois rien dans les journaux liés à exoplayer.

Voici ma configuration:

Asus Tinkerboard avec Marshmellow et un téléviseur connecté via le port HDMI. L'écran est toujours allumé.

Edit: J'ai créé un problème sur repo ExoPlayer: https://github.com/google/ExoPlayer/issues/3239

Répondre

0

Il semble que cela a été causé par une piste audio qui était plus courte que la piste vidéo et la version actuelle de ExoPlayer, à ce moment-là , accrocher à cause de cela.

L'équipe ExoPlayer a abordé cette question dans issue 1874, qui a été publiée dans ExoPlayer 2.6.0, donc cela ne devrait plus se produire sur les dernières versions.