【发布时间】:2014-04-30 23:11:54
【问题描述】:
我正在尝试使用AVAudioPlayer 在我的游戏中制作背景音乐,所以我将此代码设置为SKScene 的initWithSize 方法:
//SETTING BACKGROUND MUSIC//
NSError * err = nil;
NSURL * musicFile = [[NSBundle mainBundle] URLForResource:@"Cosmic Rush" withExtension:@"m4a"];
music = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:&err];
if(err)
{
NSLog(@"%@", [err userInfo]);
return;
}
[music prepareToPlay];
music.numberOfLoops = -1;
[music setVolume:0.5];
//SETTING BACKGROUND MUSIC//
然后,用另一种方法:[music play]; 但是,声音永远不会播放,我尝试了各种扩展:.mp3、.caf、.mp4 等。我还检查了有相同的人问题,但没有一个解决他们问题的解决方案适用于我的。
【问题讨论】:
-
您是否使用 NSLog 记录了任何错误?你试过设置断点吗?
-
几个问题:您的音频文件的确切名称是什么(在您的项目中出现)?您是否尝试过在音频文件名中没有空格?你试过 URLForResource:@"SongName.mp3" withExtension:nil];而不是您当前拥有的(将 mp3 修改为实际格式)?您是否设置了 AVAudioPlayer 委托?你能播放其他音频文件还是不能播放这个?
-
好的,我试过文件名中没有空格,扩展名为 mp3,现在 NSLog 框中出现错误,但里面什么都没有。但我还没有设置 AVAudioPlayer 委托。我该怎么做?
-
考虑将代码中名为 music 的 ivar 设置为具有强引用的属性。有关更多信息,请参阅此 SO 帖子 ->link
-
尝试记录这个:NSLog(@"Error occurred: %@", [err localDescription]);
标签: ios audio avfoundation sprite-kit avaudioplayer