使用AVAudioPlayer没有声音

时间:2013-08-25 17:07:35

标签: ios avaudioplayer

我正在尝试使用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文件夹中。我可以在项目中选择它,单击“播放”按钮,然后听到声音。

我很难过。

感谢您的帮助。

2 个答案:

答案 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];
}

就是这样