AVAudioPlayer:简单的声音不播放

Posted

技术标签:

【中文标题】AVAudioPlayer:简单的声音不播放【英文标题】:AVAudioPlayer: Simple sound not playing 【发布时间】:2013-03-09 18:30:19 【问题描述】:

我试图弄清楚为什么声音没有在我的应用中播放,所以我创建了一个我认为尽可能简单的实现:

  NSError *error;
   NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"canary-trills" ofType:@"wav"];
  NSLog(@"string=%@", soundFilePath);
  NSURL *url = [[NSURL alloc] initFileURLWithPath:soundFilePath];
  NSLog(@"URL=%@", url);
  AVAudioPlayer *avPlayer = [[AVAudioPlayer alloc]
                            initWithContentsOfURL:url error:&error];
  [avPlayer prepareToPlay];
  BOOL success = [avPlayer play];
  NSLog(@"The sound %@ play", success ? @"did" : @"didn't");

根据控制台,它似乎找到了资源,正确地创建了 URL。即使是播放调用也表明成功。但是,模拟器和设备中都没有声音播放。

【问题讨论】:

这是一个既定的事实,它只是因为一些愚蠢的原因在模拟器中不起作用。 您通过传递给“AVAudioPlayer”的“error”参数返回了什么样的错误? NSLog(@"NSError=%@", 错误);打印 NSError=(null) 【参考方案1】:

AVAudioPlayer 没有被保留并且超出了范围。

添加: @property (strong, nonatomic) AVAudioPlayer *audioPlayer;

到班级并使用该成员解决了问题。

【讨论】:

该死的。迟到 1 分钟。顺便说一句,正确答案。

以上是关于AVAudioPlayer:简单的声音不播放的主要内容,如果未能解决你的问题,请参考以下文章

AVAudioPlayer:简单的声音不播放

AVAudioPlayer 不播放音频文件 - swift

AVAudiorecorder 和 AVAudioPlayer 并不总是播放声音

为啥我的 AVAudioPlayer 不播放声音?

Swift - AVAudioPlayer,声音播放不正确

Swift - AVAudioPlayer 不播放声音