iPhone和模拟器上的音频播放效果很好但在iPad上被切断了

时间:2013-08-01 01:53:47

标签: iphone ios ipad avaudioplayer

我正在创建一个应用程序,用户可以按前进/后退按钮。每次按下这些按钮,任何当前播放的音频文件都会停止,另一个音频文件开始播放。所有这些文件都不会循环。

我正在播放音频文件,其代码类似于以下内容:

audioURL2 = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"sound2" ofType:@"aac"]];
            audio2 = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL2 error:nil];
            [audio2 play];
            audio1 = nil;
            audio3 = nil;

我启用了ARC,所以我没有明确发布音频文件。

在大多数情况下,上面的代码工作正常。我没有在我的iPhone设备上遇到过问题,也没有在iPhone或iPad模拟器上遇到过问题。我的iPad设备上的大多数音频也可以使用。

但是,即使我在播放时没有触摸按钮,其中一个音频文件也无法完全播放。每次我在iPad上播放这个音频文件时,我都可以听到音频文件的开头,但是它会在同一个地方被切断。此问题仅发生在我的iPad上,而不是任何其他设备或模拟器上。

这是我到目前为止所尝试的内容:

  • 从iPad上删除了该应用。清理,重建并重新安装应用程序
  • 重新启动iPad
  • 确保静音/软静音已关闭
  • 关闭静音/柔和静音几次,然后关闭静音
  • 增加iPad的音量

尝试上述各项后,我发现相同的音频文件在同一个地方被切断。

为什么会发生这种情况,特别是只有一个文件?我该如何解决?

更新

我尝试在标题中使用@property (strong, nonatomic) AVAudioPlayer *audio2;,然后尝试将“strong”替换为“retain”,但我仍然遇到同样的问题。

接下来,我在播放通话前卡住audio2.numberOfLoops = 1;看看会发生什么。有趣的是,audio2确实重复,但每个循环都在之前的截止点结束。当sound2被添加到iPad版本时,可能出现了问题?

1 个答案:

答案 0 :(得分:0)

似乎我的sound2.aac文件以某种方式损坏了。我从我的应用程序中删除了该文件并清理了该项目。然后我重新保存.aac文件,将这个新的.aac文件带入项目,然后再次清理它。再次在我的iPad上运行后,sound2.aac全部播放。