Tôi hiện đang sử dụng AVPlayer, cùng với AVPlayerLayer để phát lại một số video. Trong khi phát lại video, tôi đã đăng ký cập nhật thời gian cứ 30 giây một lần trong video. Điều này được sử dụng để vẽ đồ thị gia tốc tại điểm đó trong video và cập nhật nó cùng với video. Biểu đồ đang sử dụng CMTime từ video, vì vậy nếu tôi chuyển sang phần khác của video, biểu đồ ngay lập tức biểu thị thời điểm đó trong video mà không cần thêm công việc.AVPlayerLayer - Lập trình lại bánh xe?
Anywho, theo như tôi biết, nếu tôi muốn có một giao diện tương tự như những gì mà khung MediaPlayer cung cấp, tôi sẽ phải tự mình làm điều đó.
Điều tôi đang tự hỏi là, có cách nào để sử dụng AVPlayer của tôi với khung công tác MediaPlayer không? (Không phải là tôi có thể thấy.) Hoặc, có cách nào để đăng ký cập nhật thời gian gia tăng với khung công tác MediaPlayer không.
Mã của tôi, nếu có ai quan tâm, sau:
[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];
});
}
}];
Cảm ơn!
Woa. câu trả lời này gần một năm sau câu hỏi, và vẫn được chấp nhận! Bravo. – Almo