Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c AVAudioPlayer拒绝播放任何内容,但没有错误,等等_Objective C_Avaudioplayer_Wave - Fatal编程技术网

Objective c AVAudioPlayer拒绝播放任何内容,但没有错误,等等

Objective c AVAudioPlayer拒绝播放任何内容,但没有错误,等等,objective-c,avaudioplayer,wave,Objective C,Avaudioplayer,Wave,这是最简单的AVAudioPlayer代码,只是无法播放任何内容。没有错误,控制台中没有任何内容,文件肯定会被找到,就好像我将URL字符串更改为不存在的内容一样,我确实遇到了崩溃。我做错了什么?我已经试过了,不管有没有代表,也不管有没有准备玩,但我什么都做不出来。我也试过各种声音文件。这件事真让我毛骨悚然 @implementation ViewController - (IBAction)playSound:(id)sender { NSURL *soundLocation = [[

这是最简单的AVAudioPlayer代码,只是无法播放任何内容。没有错误,控制台中没有任何内容,文件肯定会被找到,就好像我将URL字符串更改为不存在的内容一样,我确实遇到了崩溃。我做错了什么?我已经试过了,不管有没有代表,也不管有没有准备玩,但我什么都做不出来。我也试过各种声音文件。这件事真让我毛骨悚然

@implementation ViewController

- (IBAction)playSound:(id)sender
{
    NSURL *soundLocation = [[NSURL alloc] initWithString:@"Lot01.wav"];
    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundLocation error:nil];
    [audioPlayer setDelegate:self];
    [audioPlayer play];
}

@end

似乎无法正确获取文件的路径,请尝试类似的方法

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Lot01" ofType:@"wav"];
NSURL *url = [NSURL fileURLWithPath:filePath];

然后初始化AVAudioPlayer的方式与您的完全相同,但在这种情况下,它将包含url:url的内容。

结果表明,这是ARC释放的问题,我通过为所讨论的AVAudioPlayer添加@property和@Synthesis对,并将其声明为strong来修复它。它消除了所有这些错误,播放文件时没有任何问题。

好的,这样做时,仍然没有音频输出,但单击按钮触发iAction时会有一个短暂的暂停,这表明发生了什么事情。我在点击时也得到了很多控制台输出,关于我安装的不相关的音频单元插件有很多错误。我需要告诉iPhone模拟器使用哪种音频输出设备,还是使用系统默认设置?我也在设备上测试过,而且也没有声音。