0

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 フォルダーに表示されます。プロジェクトでそれを選択し、[再生] ボタンをクリックしてサウンドを聞くことができます。

私は困惑しています。

ご協力いただきありがとうございます。

4

2 に答える 2

0

再生前に AVAudioPlayer のデリゲートを設定します。例えば、

newPlayer.delegate = self;

また、デリゲートのクラスが AVAudioPlayerDelegate プロトコルに準拠していることを確認してください。

MyClass : Superclass <AVAudioPlayerDelegate>
于 2013-08-25T19:01:24.733 に答える