Ich verwende derzeit einen AVPlayer, zusammen mit einem AVPlayerLayer, um ein Video abzuspielen. Während der Wiedergabe des Videos habe ich mich während des Videos alle 30 Sekunden für die Zeitaktualisierung registriert. Dies wird verwendet, um ein Diagramm der Beschleunigung an diesem Punkt im Video zu zeichnen und es zusammen mit dem Video zu aktualisieren. Das Diagramm verwendet CMTime aus dem Video. Wenn ich also zu einem anderen Teil des Videos überspringe, stellt das Diagramm sofort diesen Zeitpunkt im Video ohne zusätzliche Arbeit dar.AVPlayerLayer - Das Rad neu programmieren?
Anywho, soweit ich weiß, wenn ich eine Schnittstelle ähnlich wie das MediaPlayer-Framework bekommen möchte, muss ich das selbst tun.
Ich frage mich, gibt es eine Möglichkeit, meinen AVPlayer mit dem MediaPlayer-Framework zu verwenden? (Nicht dass ich sehen kann.) Oder gibt es eine Möglichkeit, sich für inkrementelle Zeitaktualisierungen mit dem MediaPlayer-Framework zu registrieren.
Mein Code, wenn jemand interessiert ist, folgt:
[moviePlayer addPeriodicTimeObserverForInterval: CMTimeMake(1, 30) queue: dispatch_queue_create("eventQueue", NULL) usingBlock: ^(CMTime time) {
loopCount = (int)(CMTimeGetSeconds(time) * 30);
if(loopCount < [dataPointArray count]) {
dispatch_sync(dispatch_get_main_queue(), ^{
[graphLayer setNeedsDisplay];
});
}
}];
Dank!
Woa. Diese Antwort ist fast ein Jahr später als die Frage und wurde trotzdem akzeptiert! Bravo. – Almo