Succescriterium 1.2.4 – Ondertiteling bij live video

Bij het publiceren van een live video moet de ondertiteling ook live te volgen zijn. Hierdoor kunnen mensen die ondertiteling nodig hebben de inhoud ook direct tot zich nemen.

Oplossing

De uitdaging bij live ondertiteling is organisatorisch en technisch. Er moet namelijk een ondertitelaar aanwezig zijn die via de juiste software de live video direct kan voorzien van ondertiteling.

Op Android raden we aan om gebruik te maken van een codebibliotheek zoals ExoPlayer. ExoPlayer is ontwikkeld door Google en biedt een open-source alternatief voor de MediaPlayer van Android voor het afspelen van audio en video. In de documentatie zijn veel codevoorbeelden te vinden. Je kunt DefaultTrackSelector gebruiken voor het tonen van ondertiteling.

val trackSelector = DefaultTrackSelector(baseContext)
trackSelector.setParameters(
    trackSelector.buildUponParameters().setPreferredTextLanguage("nl")
)

val exoPlayer = SimpleExoPlayer.Builder(baseContext)
                    .setTrackSelector(trackSelector)
                    .build()

val dataSourceFactory: DataSource.Factory = DefaultHttpDataSourceFactory(
    Util.getUserAgent(baseContext, "Appt"), null,
    DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
    1800000,
    true
)

val mediaUri = Uri.parse("https://live.video")
val mediaSource = HlsMediaSource.Factory(dataSourceFactory).createMediaSource(mediaUri)

exoPlayer.prepare(mediaSource)

Op iOS heeft AVPlayer ondersteuning voor live video met ondertiteling. Gebruikers kunnen via de systeemvoorkeuren ondertiteling automatisch aanzetten. De makkelijkste manier om een live video te streamen is via AVPlayerViewController.

guard let url = URL(string: "https://live.video") else { return }
let player = AVPlayer(url: url)

let playerViewController = AVPlayerViewController()
playerViewController.player = player

present(playerViewController, animated: true) {
    player.play()
}

Andere succescriteria