小编Max*_* Ka的帖子

AVPlayer未同步

我真的没有想法,所以我不得不再问你们......

我正在构建一个使用三个AVPlayer实例的iPhone应用程序.他们都在同一时间玩,他们这样做是非常重要的.我以前运行这段代码:

CMClockRef syncTime = CMClockGetHostTimeClock();
CMTime hostTime = CMClockGetTime(hostTime);
[self.playerOne setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
[self.playerTwo setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
[self.playerThree setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
Run Code Online (Sandbox Code Playgroud)

这很完美.但是几天前它刚停止工作,三个玩家被推迟了大约300-400ms(这是很多,100ms以下的一切都没问题).其中两个AVPlayer有一些音频处理,比"普通"AVPlayer需要花费一些时间,但它曾经工作过,而且currentTime属性告诉我,这些播放器都被延迟了,所以同步似乎失败了.

我不知道它为什么停止工作,我没有真正改变一些东西,但我正在使用一个观察者,我可以询问self.playerX.currentTime属性,这给了我大约.3-.4秒的延迟. ..如果延迟> .1f,我已经尝试重新同步玩家,但延迟仍在那里.所以我认为播放器1和2的音频处理不能对延迟负责,因为currentTime属性确实知道它们被延迟了(我希望你知道我的意思).也许你们中的某些人知道为什么我有这么可怕的延迟,或者能够给我另一个想法.

提前致谢!

iphone objective-c core-audio ios avplayer

8
推荐指数
1
解决办法
2767
查看次数

iPhone私有API编译

我几个小时后在整个互联网上搜索,我找不到我正在寻找的信息.我想搞乱私人api,看看什么可能,等等,但我甚至无法编译.

所以我有几个非常基本的问题:

  • 我必须转储标头吗?因为我下载了一个加载API的示例
char *framework = "/System/Library/PrivateFrameworks/...";
dlopen(...);
Run Code Online (Sandbox Code Playgroud)

如果有任何机会,我想使用objc语法(如果可能)而不是使用C(如上所述).

  • 如果导入私有API,如何编译Xcode?我是否必须添加其他链接标志?(因为我读到了两个不同的意见)我添加了一个私有框架并创建了一个新的文件夹"Headers"并将所有头文件放在那里,因此框架在Xcode中正确显示.我是否必须导入整个.framework,或者只导入我想要使用的框架中的标头?导入框架后,我得到20多个错误,未知的类型名称等等.

最后,我读到了有关权利(在iOS 7中似乎是新的).我如何使用这些权利以及何时使用它们?

有人可以请输入几行作为例子吗?

xcode objective-c iphone-privateapi ios

7
推荐指数
1
解决办法
4528
查看次数