1

私は小さなゲームに取り組んでいますが、バックグラウンドミュージックに問題があります。私はAVAudioPlayerループ音楽を演奏するために使用します。以下のようになります。

NSString *path = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"ogg"];
NSError *error;

AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] error:&error];

NSLog(@"%@", [error description]);

[player setNumberOfLoops:-1];
player.delegate = self;
[player play];

私はSupproting Filesファイルbackground.oggを持っていますbackground.mp3、、background.wavそして誰もプレイしません。何が問題なのですか?

そして、NSLog説明エラーを印刷するために使用すると、次のようになります。

Error Domain=NSOSStatusErrorDomain Code=1954115647 "The operation couldn’t be completed. (OSStatus error 1954115647.)"

助けてください。

4

2 に答える 2

0

場合によっては、オーディオ ファイルの品質が必要なサンプリング レートなどと一致しないことがあります。オーディオ サンプリング レートが 24kHz よりも低いかどうかを確認してください。いくつかのオーディオをテストしましたが、オーディオのサンプリング レートが 44kHz よりも高い場合はうまく機能することがわかりましたが、44kHz よりも低く 22kHz よりも高い場合、AudioToolbox は最初にサウンドを再生できませんが、AVAudioPlayer はいくつか動作します。回。また、22kHz 未満の場合、これらのオーディオ ファイルを再生することはできません。

ちなみに、低サンプリングレートのオーディオを44kHzの「m4a」ファイルに変換したい場合は、iTunesを使用しても機能しません.これに時間を無駄にしないでください.

于 2015-12-29T05:30:15.107 に答える
-2

それはとても簡単でした。もう一つあります。たとえば、使用する場合は、どこかで使用NSTimerする必要がありますivalidate。使用するときは、どこかで使用するAVAudioPlayer必要がありますstop

[player stop];
于 2012-12-29T15:13:14.453 に答える