Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 让我的AVAudio播放器开始工作_Objective C_Avaudioplayer - Fatal编程技术网

Objective c 让我的AVAudio播放器开始工作

Objective c 让我的AVAudio播放器开始工作,objective-c,avaudioplayer,Objective C,Avaudioplayer,我正在尝试使用AVAudioPlayer播放mp3。以下是我的代码: - (void) playClip { NSString *mp3File = [[NSBundle mainBundle] pathForResource:@"inFavor" ofType:@"mp3"]; AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3File] error:

我正在尝试使用
AVAudioPlayer
播放mp3。以下是我的代码:

- (void) playClip {
NSString *mp3File = [[NSBundle mainBundle] pathForResource:@"inFavor" ofType:@"mp3"];
AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3File] error:NULL];
[avPlayer play];
}  
我引用的文件名是“inFavor.mp3”


我对Objective-C有点陌生,所以我不太清楚为什么它不起作用。我正在使用Xcode 5。

试试这段代码,您需要检查错误。粘贴出错的日志

NSError *error;
NSString *path = [[NSBundle mainBundle] pathForResource:@"inFavor" 
                                              ofType:@"mp3"];
AVAudioPlayer* avPlayer = 
  [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]
                                         error:&error];
if (error) {
   NSLog(@"failed playing error: %@", error);
}else{
//avPlayer.delegate = self;
[avPlayer play];
}

使AVAudioPlayer成为类的属性,以便在函数超出范围时不会释放它

@property (strong, nonatomic) AVAudioPlayer* avPlayer;
然后用

self.avPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:mp3File] error:NULL];

您是否已验证
mp3File
不是
nil
?并利用
error
参数记录问题。当有这么多问题涉及AVAudioPlayer时,您的问题有什么特别之处-1刚开始接触这一领域,正在寻求帮助。我的目的不是增加混乱。对于一个有经验的人来说,什么是显而易见的(或者是一个糟糕的问题),对于一个新手来说,什么是正常的。这可能有点吓人,因为对于每个回答问题的人来说,都有人告诉你这是一个愚蠢的问题/在以下行中:avPlayer.delegate=self;它给了我一条(黄色)错误消息,说“从不兼容的RJViewController*const_strong类型分配到id”