我正在尝试使用AVAudioPlayer播放声音但没有成功。我已经在iOS模拟器和我的iPhone上尝试过了。我没有任何错误,但我也听不到声音。
这是我的代码:
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: @"RiggerSound_Click" ofType: @"wav"];
NSLog( @"Path is %@", soundFilePath );
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
NSError *error;
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: &error];
[fileURL release];
if (newPlayer != nil)
{
if( ![newPlayer play] )
NSLog( @"Error playing" );
[newPlayer release];
}
else
NSLog(@"Error creating audioPlayer: %@", [error localizedDescription]);
soundFilePath是“/ Users / myname / Library / Application Support / iPhone Simulator / 6.1 / Applications / E50059DD-B328-45C7-A5D5-C650F415B183 / appname.app / RiggerSound_Click.wav”。
“newPlayer”变量不为null,[newPlayer play]不会失败。
文件“RiggerSound_Click.wav”显示在我项目的Resources文件夹中。我可以在项目中选择它,单击“播放”按钮,然后听到声音。
我很难过。
感谢您的帮助。
答案 0 :(得分:0)
播放前设置AVAudioPlayer的委托。例如,
newPlayer.delegate = self;
另外,请确保您的委托的类符合AVAudioPlayerDelegate协议:
MyClass : Superclass <AVAudioPlayerDelegate>
答案 1 :(得分:-1)
只需将AVAudio播放器定义为静态
即可static AVAudioPlayer *newPlayer = Nil;
if(newPlayer == Nil)
{
newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: &error];
}
就是这样