带有addPeriodicTimeObserverForInterval的Cocoa AVPlayer

时间:2015-02-01 22:57:10

标签: objective-c macos cocoa avplayer

我在我的应用程序中使用AVPlayer。我使用addPeriodicTimeObserverForInterval以当前播放状态更新UI。

CMTime tm = CMTimeMakeWithSeconds(0.1, 100);

[player addPeriodicTimeObserverForInterval:tm     
queue:dispatch_get_main_queue() usingBlock:^(CMTime time) {

        NSDateFormatter *DateFormatter=[[NSDateFormatter alloc] init];
        [DateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss:mmm"];
        NSLog(@"%@",[DateFormatter stringFromDate:[NSDate date]]);
}

我的目标是每隔10秒刷新一次。但是,代码块每秒只执行一次。这是它可以运行的最小单位还是我做错了什么来使投票每10秒发生一次?

感谢任何帮助。谢谢。

编辑: 实际上,经过进一步的调查后,似乎回调实际上每隔10秒工作一次,但是当我向玩家询问某些wav文件的当前时间时,需要一秒钟来获得响应而其他人正常工作。有谁经历过这个?

2 个答案:

答案 0 :(得分:1)

更新CMTime tm = CMTimeMakeWithSeconds(0.1,100);

到CMTime tm = CMTimeMakeWithSeconds(0.1,10);

答案 1 :(得分:0)

我建议在块之外移动DateFormatter的创建。你应该只需要分配/初始化一次,而且它可能相当昂贵。