2017-02-23 1 views
3
Hintergrund geht

Ich möchte die Bandbreite meiner app verbraucht reduzieren, wenn der Benutzer ein Video abspielt und geht in den Hintergrund-Modus (ein HLS-Stream verwendet wird). Ich möchte, dass die Audiodatei weiterhin abgespielt wird, aber es scheint, als ob der AVPlayer die Videosegmente herunterlädt, obwohl sie nicht benötigt werden sollten (der Benutzer kann sowieso nichts sehen).Audio-Halten und Video-Stream für AVPlayer entfernen, wenn app in

Theoretisch könnte ich ein Video mit einer sehr niedrigen Bitrate (wie einem schwarzen Bildschirm) haben und player.currentItem.preferredPeakBitRate = 1 setzen, wenn die App in den Hintergrundmodus wechselt, aber dann weiß ich nicht, wie die App eine große Zahl herunterladen kann von schwarzen Videosegmenten im Hintergrund, so dass, wenn der Benutzer zurückkehrt, er/sie für lange Zeit einen schwarzen Bildschirm bekommt. Außerdem ist es unklar, wie ich verhindern kann, dass der schwarze Bildschirm im Vordergrundmodus angezeigt wird, wenn der Benutzer eine schlechte Verbindung hat?

Ich habe auch das Video durch die AVURLAsset des deaktivieren - (AVMediaSelectionGroup *)mediaSelectionGroupForMediaCharacteristic:(NSString *)mediaCharacteristic versucht. Ich könnte dies für Audio tun, aber nicht für Video, da die Methode null für den Parameter AVMediaCharacteristicVisual zurückgibt. Kann ich das in meinem HLS-Manifest ändern, um dies zu ermöglichen?

+0

das gleiche Dilemma. Was hast du am Ende gemacht? –

Antwort

0

Der beste Weg, dies zu handhaben ist hierfür ein eingehendes Audioprofil durch das Manifest und nicht viel zu tun auf der Client-Seite zu verwenden. Dies liegt daran, die nur Audio-Profil wird vergleichsweise niedriger Bitrate als zu Audio + Video Profile haben und wenn Sie den Zustand versetzt, um zu überprüfen - wenn indicatedbitrate kleiner als die minimale Audio + Video Profil das Manifest hat, wird es automatisch in das Audio-Profil zu wechseln, wenn Es benötigt.

Sie müssten auch den Beobachter für AVPlayerItemNewAccessLogEntry hinzufügen.