在模拟器/ Xcode的录音时新鲜SpeakHere示例应用程序有错误(Fresh SpeakHer

2019-07-04 06:29发布

使用我不能录制音频SpeakHere示例应用程序从苹果。 当我从在Xcode运行在模拟器的应用程序,它正常启动,但是当我按下记录按钮时,错误“线程1:EXC_BREAKPOINT(代码= EXC_I386_BPT,子码=为0x0)”的发生:

关于在应用程序启动时丢失的根视图控制器日志消息是已经有之前出现上述错误,它可能是没有连接到我的问题。

我已经下载从链接的网站(见这个问题的顶部)SpeakHere示例项目,开在Xcode新鲜下载和直接启动应用程序。 我没有修改任何设置和代码没有任何行。 我还搜查谷歌和计算器对于这个问题,并没有找到一个解决方案,但这个问题应该很一般。

我使用的Xcode 4.5.2版本(4G2008a)和MacBook Pro的,从2009年下半年与Mac OS X 10.8。

我也有一个朋友尝试这种在他的电脑和他有同样的问题。 他有相同的操作系统和他的XCode版本也4.5.2。

我现在想尝试较旧版本的Xcode,但现在我不喜欢下载几个G为我连接上trial'n'error方法。

任何帮助表示赞赏,其中包括像“作品我在Xcode版本......”报告。 谢谢!

Answer 1:

出现该问题是因为在该方法中AQRecorder::StartRecord(CFStringRef inRecordFile)函数CFURLCreateWithString()失败,并返回一个指针到零。 这个没有检测和稍后代码调用CFRelease()对这个零指针,这将导致EXC_BREAKPOINT。

该方法的目的CFURLCreateWithString()基本上是采取将URL字符串作为输入,并返回一个指针一个CFURL对象作为输出。 这里的问题是:输入是不是URL字符串。 相反,它只是在本地文件系统上不带路径file:/等作为前缀或。 出于这个原因,这种方法失败。

解决的办法是删除不工作的方法调用CFURLCreateWithString()而是调用相关的方法,即CFURLCreateWithFileSystemPath()这是准备采取本地文件系统路径,并将其转换为CFURL:

在该方法中AQRecorder::StartRecord(CFStringRef inRecordFile)取代或注释掉线

url = CFURLCreateWithString(kCFAllocatorDefault, (CFStringRef)recordFile, NULL);

并插入

url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)recordFile, kCFURLPOSIXPathStyle, false);

在它的位置。



Answer 2:

url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, (CFStringRef)recordFile, kCFURLPOSIXPathStyle, false);

上面的代码让我xcoce 4.6编译并在模拟器中运行,但它亘古不变的从我的USB麦克风录制我的声音,我测试我的麦克风在garash带的应用和成功地录制和播放我的声音,和dbmeter完全不动,任何方式,当我把它移植到真实设备它的工作,它只是不能记录和我的模拟器播放语音。



文章来源: Fresh SpeakHere example app has error when recording audio in Simulator/Xcode