Ich streame Audio mit AVPlayer. Es funktioniert gut. Aber jetzt muss ich einen Schieberegler machen, um Audio vorwärts und rückwärts zu bewegen, wie ein typischer Musik-Player. Ich habe die Funktion seekToTime
benutzt, die gut mit der lokalen Audiodatei funktioniert. Aber wenn ich Lied von Web-URL streame, stoppt die Funktion Audio, wenn ich Schieberegler mit einem großen Bereich weiterleite.SeekToTime in AVPlayer stoppt die Wiedergabe von Streaming-Audio, wenn vorwärts
Meine Vermutung ist, dass der Song heruntergeladen wird und wenn ich Slider mit großer Reichweite vorwärts bewegen, dann kann das System die Song-Datenpakete für diese Zeit nicht heruntergeladen haben, so dass es Player stoppt.
Sagen wir, ich habe gerade einen Knopf gedrückt, um den Song zu streamen, aber jetzt verschiebe ich den Schieberegler sofort auf 0 bis 100 Sekunde. In diesem Fall funktioniert das System nicht und stoppt den Player. Wegen fehlender Datenpakete für diese Zeit.
Hat jemand wissen, wie man dieses Problem löst oder gibt es einen anderen Ansatz. Ich verwende SWIFT für die Entwicklung. Ich bin auch bereit, irgendeine Bibliothek zu benutzen, wenn es in swift funktionieren würde. Das ist meine Funktion:
func forward() {
timeGap = slider.value
let preferredTimeScale : Int32 = 1
let targetTime : CMTime = CMTimeMake(timeGap, preferredTimeScale)
player.seekToTime(targetTime, toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)
}
Vielen Dank im Voraus.
Ich habe bemerkt, dass, wenn ich ein Live-Video der Stream starten Puffer ist von Anfang an leer ('playbackBufferEmpty == true') und das playbackBufferEmpty-Flag ändert seinen Zustand niemals in false. Gibt es eine Möglichkeit, die Pufferung mit AVFoundation manuell zu starten? – svrs