Xcode 6 音频问题

Posted

技术标签:

【中文标题】Xcode 6 音频问题【英文标题】:Xcode 6 audio problems 【发布时间】:2015-08-01 07:29:53 【问题描述】:

最近我将我的 Xcode 从 5 版本更新到 6.4 版本,模拟器没有发出任何声音,但有一些错误消息。最简单的代码运行不好,应用程序本身在模拟器中启动但没有音频,问题可能出在某些设置中,因为我之前运行过的所有代码和程序都运行良好。我使用全新的 mac mini,所以我从不同的旧版本导入了这些代码。

如果有人遇到这样的问题,请帮助我!

错误是这样的:

2015-08-01 09:03:56.730 Testbutton[496:11659] 09:03:56.730 错误:98:错误“!obj”试图获取默认输入设备的采样率 2015-08-01 09:03:56.731 Testbutton[496:11659] 09:03:56.731 错误:100:获取音频输入设备采样率时出错:'!obj' 2015-08-01 09:03:56.731 Testbutton[496:11659] 09:03:56.731 警告:230:输入设备为 0x0; '(空)' 2015-08-01 09:03:56.731 Testbutton[496:11659] 09:03:56.731 警告:234:输出设备为 0x26; 'AppleHDAEngineOutput:1B,0,1,2:0' 2015-08-01 09:03:56.732 Testbutton[496:11659] 09:03:56.732 错误:296:错误'!obj' 2015-08-01 09:03:56.732 Testbutton[496:11659] 09:03:56.732 错误:113:* * * NULL AQIONode 对象 2015-08-01 09:03:56.732 Testbutton[496:11403] 09:03:56.732 错误:296:错误 -66680 2015-08-01 09:03:56.732 Testbutton[496:11403] 09:03:56.732 错误:>aq> 1595:失败(-66680);将停止(11025/0 帧) 2015-08-01 09:03:56.736 Testbutton[496:11659] 09:03:56.736 错误:703:无法制作 UISound 渲染器

代码是这样的:

//  ViewController.m
//  Testbutton

#import "ViewController.h"

@interface ViewController ()

    AVAudioPlayer *_audioPlayer;

@end

@implementation ViewController



- (void)viewDidLoad

    [super viewDidLoad];

    // Construct URL to sound file
    NSString *path = [NSString stringWithFormat:@"%@/horn.wav",     [[NSBundle mainBundle] resourcePath]];
    NSURL *soundUrl = [NSURL fileURLWithPath:path];

    // Create audio player object and initialize with URL to sound
_audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];


- (IBAction)buttonPressed:(id)sender 

    [_audioPlayer play];


- (void)dealloc 
    [audioPlayerPointer release];
    [super dealloc];


@end

还有一个头文件:

#import <UIKit/UIKit.h>

#import <AVFoundation/AVFoundation.h>

@interface ViewController : UIViewController



    AVAudioPlayer* audioPlayerPointer;



- (IBAction)buttonPressed:(id)sender;


@end

【问题讨论】:

你为什么要发布你从未分配或初始化过的audioPlayerPointer?此外,这真的是应用程序的全部内容(加上一个主文件和/或故事板或 xib),还是在更大的应用程序的其他部分还有更多内容? 当我按下应该激活音频播放器的简单按钮时出现错误。它不会发出任何声音,但会出现此错误,但应用程序不会崩溃。我只能在模拟器中尝试这个,因为现在我没有任何设备可以在那里尝试。 对不起,在你写之前我开始写一个额外的评论,所以这是我开始学习Xcode编程时得到的教程代码,故事板只有一个按钮,这是应用程序本身。只是一个教程 appdelegate.h 和 .m,launchscreen.xib 和 main.storyboard(和 horn.wav)在我复制的这两个文件旁边的项目中 哦,这个代码中没有用到audioPlayerPointer,所以我可以删除它 【参考方案1】:

AVAudioPlayer 需要有效的输入和输出才能自行设置。这在真实设备(内置这些东西)上不是问题,但在 MacMini 上没有内置麦克风的模拟器中却是个问题。

如果您有麦克风,请尝试将其插入 MacMini 上的“线路输入”端口(我找到了这个可能的解决方案 in the comments of the answer to this very related question)。确保在系统偏好设置中也选择“line-in”作为输入。

【讨论】:

我将麦克风连接到线路输入。 如果您有注册的 Apple 开发者帐户,我建议您在 bugreporter.apple.com 提交错误并准确描述您遇到的情况以及您必须采取的解决方法才能使其正常工作。即使没有有效的输入,AVAudioPlayer 也应该能够发出声音。库比蒂诺的大多数 Apple 工程师都拥有*** MacPro 工作站,他们忘记了世界上有一个庞大的开发人员社区正在使用 MacMinis 进行开发,因此他们没有使用真实场景正确测试模拟器喜欢你必须处理的事情。一个错误会提醒他们这一点。 好的,谢谢所有这些,我会向他们报告这个错误,现在我正在为线路输入而苦苦挣扎,因为在我的另一个应用程序上我需要一个麦克风输入,因为我'已经读过线路输入不适用于麦克风。 MacMini 也不识别我的外部声卡的麦克风输入,所以我想我今天会在这方面做一些工作:) 谢谢!

以上是关于Xcode 6 音频问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS 11 + Xcode 9.0 = 无音频单元

Xcode:多个音频文件,单个按钮

xcode:如何在使用 AVFoundation 录制音频后保存音频文件

如何在 Xcode 中制作关于音频的按钮?

单击后退按钮iOS 6时如何继续播放音频

如何在xcode中播放音频文件[重复]