小编IPv*_*Pv6的帖子

UIImage:imageWithContentsOfFile在iOS 5.0中慢10倍

在新发布的iOS 5.0 SDK上重新编译我们的iPhone应用程序后,我遇到了一个奇怪的问题 - 所有UIImage:imageNamed(第一次调用实际图像加载)和UIImage:imageWithContentsOfFile开始工作比之前慢10倍.我设法缩小问题:这只是jpeg和png文件(不是GIF!)的情况,这不是因为文件大小.即使直接加载小型32*32 png也需要大约300ms ...相比之下老式设备需要30ms(在3.1和4.3.5上使用完全相同的代码检查)

我还试图通过这个代码通过新引入的CIImage加载图像

WLLog(@"Data loading...");
NSData *imageData = [NSData dataWithContentsOfFile:path];
WLLog(@"CIImage creation...");
CIImage* cii = [CIImage imageWithData:imageData];
WLLog(@"CIImage creation ok...");
float scle = 1.0;
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
    scle = [[UIScreen mainScreen] scale];
}
#endif
CIContext *context = [CIContext contextWithOptions:nil];
UIImage* res5 = [[UIImage alloc] init];
WLLog(@"UIImage creation...");
[res5 initWithCGImage:[context createCGImage:cii fromRect:cii.extent] scale:scle orientation:UIImageOrientationUp];
WLLog(@"Done!");
Run Code Online (Sandbox Code Playgroud)

没有任何运气......这一行

CIImage* cii = [CIImage imageWithData:imageData];
Run Code Online (Sandbox Code Playgroud)

即使在小图像(4Kb png)上也需要相同的300毫秒.imho,根本没有什么可以解析的!

有没有什么可以解决加载时间这种奇怪的变化?现在它似乎在sdk内部发生了巨大的变化:(

iphone uiimage imagenamed ios5

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

奇怪的writeVideoAtPathToSavedPhotosAlbum行为

我们有"视频重播"应用程序,并使用writeVideoAtPathToSavedPhotosAlbum:completionBlock:ALAssetsLibrary将视频保存到相机胶卷.大部分的它工作得很好的时间,但有时也completionBlock:^(NSURL *assetURL, NSError *error)被称为有两个参数equalnil.

文档说明如果错误为零 - 在写操作期间没有发生错误,所以assetURL不应该nil.但是我们仍然获得assetURL == nilerror == nil在同一时间,有时

在哪些情况下这是可能的?欢迎任何帮助.

iphone objective-c ios alasset alassetslibrary

7
推荐指数
0
解决办法
631
查看次数

HAL 虚拟设备:如何“代理”麦克风

我正在尝试创建“虚拟麦克风”,它应该在默认输入设备/麦克风的“前面”工作。因此,当用户选择“虚拟麦克风”作为输入(例如在 Audacity 中)并开始录制声音时 - Audacity 将从虚拟设备驱动程序接收样本,这些样本是由驱动程序从真实/默认麦克风中获取的。所以“虚拟麦克风”是一种真实(默认/内置/等)的代理设备。这是稍后即时处理麦克风输入所必需的。

到目前为止,我创建了虚拟 HAL 设备(基于 Apple 的 NullAudio.c 驱动程序示例),我可以为 Audacity 生成程序声音,但我仍然无法弄清楚从内部驱动程序读取真实麦克风数据的方法(使用其 deviceID) .

是否可以像通常的应用程序一样使用普通录音(通过 AudioUnits/AURemoteIO/AUHAL)等?或者应该使用 IOServices 之类的东西?

文件指出

AudioServerPlugIn 在有限的环境中运行。首先,AudioServerPlugIn 可能不会对 CoreAudio.framework 中的客户端 HAL API 进行任何调用。这将导致未定义(但通常是不好的)行为。

但在读取麦克风数据方面,尚不清楚哪些 API 是“客户端”API,哪些不是。

虚拟设备驱动程序可以/应该使用什么样的 API 来实时访问真实的麦克风数据?

macos hal driver core-audio

7
推荐指数
0
解决办法
498
查看次数

iPhone:获取应用程序绝对路径

有没有办法以编程方式获得可执行文件的绝对路径.在执行此可执行文件期间,我的意思是:在linux中读取/ proc/pid/*以获取当前PID

谢谢!

iphone

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