Ich habe mich umgesehen, aber ich kann kein Delegatenprotokoll für das finden AVPlayer class
. Was gibt?
Ich verwende seine Unterklasse, AVQueuePlayer
um ein Array von AVPlayerItems
jeweils von einer URL geladenen abzuspielen . Kann ich eine Methode aufrufen, wenn ein Song fertig ist? Besonders am Ende der Warteschlange?
Und wenn das nicht möglich ist, gibt es eine Möglichkeit, eine Methode aufzurufen, wenn der Song nach dem Puffern abgespielt wird? Ich versuche dort ein Ladesymbol zu finden, aber es schaltet das Symbol aus, bevor die Musik tatsächlich beginnt, obwohl es nach der [audioPlayer play]
Aktion ist.
itemDidFinishPlaying:
, z. B. mit Doppelpunkt. Aus derNSNotificationCenter
Dokumentation: Die von notificationSelector angegebene Methode darf nur ein Argument (eine Instanz vonNSNotification
) enthalten.Ja. Fügen Sie dem Status oder der Rate des Spielers einen KVO-Beobachter hinzu:
Im Grunde ist es das.
Haftungsausschluss: Ich habe das hier geschrieben, also habe ich nicht überprüft, ob der Code gut ist. AUCH ich habe AVPlayer noch nie benutzt, aber es sollte ungefähr richtig sein.
quelle
Swift 3 - Ich füge
AVPlayerItem
jedes Mal, wenn ich dem Player ein Video hinzufüge, einen Beobachter hinzu:quelle
Das AVFoundation-Programmierhandbuch für Apple-Dokumente enthält viele Informationen (siehe Abschnitt zur Wiedergabe der Überwachung). Es scheint hauptsächlich über KVO zu sein, daher möchten Sie dies möglicherweise auffrischen, wenn Sie nicht zu vertraut sind (es gibt eine Anleitung dazu zu Key Value Observing ProgrammingGuide) .
quelle
Ich benutze dieses und es funktioniert:
Wo
_playingAudio
ist meine benutzerdefinierte Klasse mit einigen Eigenschaften undtimeObserver
istid
ivar.quelle