0

iPhone でプログラムによってサウンドを再生する際に問題があります。AvAudioPlayer に関する Xcode のドキュメントの説明がわかりません。他の誰かが私にコードスニペットを教えてくれませんか、それとももっと説明してくれませんか?

私が正確にやりたいことを編集することは、ビューがロードされたときに開始され、アプリの終了時に音楽が停止する必要がある(バックグラウンドで再生されない)無限ループでサウンドを再生することです。私が開発しようとしているゲーム用です

実際、私が使用しているすべての方法で同じエラーが返されます:(ログの抜粋)

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'

編集終了

ありがとう

4

2 に答える 2

1

バンドルに追加した短いサウンドを再生する非常に簡単な方法を次に示します。

NSString *soundPath = [[NSBundle mainBundle] pathForResource:@"somesound" ofType:@"aif"];

SystemSoundID soundID;

AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath: soundPath], &soundID);

AudioServicesPlaySystemSound (soundID);

システム サウンド サービス リファレンスに関するその他のドキュメントを次に示します。

編集: 単純に短いサウンドを再生したくないので、これはより良いかもしれません:

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"mySound" ofType:@"mp3"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
player.numberOfLoops = -1; //infinite

[player play];

詳細については、AVAudioPlayer クラス リファレンスを参照してください。

于 2012-11-14T19:54:38.060 に答える
0

エラーに基づいて、サウンド ファイルへのパスが有効ではありません (NSURL は無効なパスに対して nil を返します)。

于 2012-11-14T20:44:07.163 に答える