0

以下のコードを使用して mp3 ファイルを再生しようとしています。正常に動作しているようですが、電話から音が出ません。音量が上がり、ファイルが見つかり (要求されたファイルを存在しない名前に変更するとエラーが発生します)、エラーは表示されません (「playerError」でも)。問題になる可能性があると思われる唯一のことは、おそらくプレーヤーが再生を終了する前に割り当てを解除することですが、それを修正する方法がわかりません。問題の内容とその修正方法について何か提案はありますか? どうもありがとう!

...

if([responseString  isEqual: @"Stop"]){
    [self playStop];
}

...

- (void) playStop{
    NSString *soundFilePath =
    [[NSBundle mainBundle] pathForResource: @"stop"
                                    ofType: @"mp3"];

    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];

    NSError *playerError;

    AVAudioPlayer *newPlayer =
    [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL
                                           error: &playerError];
    [newPlayer play];
}
4

1 に答える 1

1

" AVAudioPlayer" を (関数内のローカル変数ではなく) インスタンス変数またはプロパティにすると、" " が終了したときに ARC によってすぐに解放されるのではなく、残り続けるようplayStopにすると、運が良くなる可能性が高くなります。

于 2013-10-04T17:06:43.037 に答える