OS バージョン 3.0 の第 2 世代 iPod touch でこのサンプル コードを実行すると、問題なく動作します。ただし、OS バージョン 2.2.1 の第 1 世代の iPod touch で実行すると、そうではありません。バックグラウンド ミュージック用に mp3 を再生していますが、3.0 デバイスで SFX mp3 を再生しても問題ありません。古いデバイス/OS バージョンでは別の処理を行う必要があるのか、それとも古いデバイス/OS バージョンでは複数の mp3 ファイルを同時に再生できないのか疑問に思っています。私が読んだ投稿によると、iPhone は複数の mp3 ファイルを同時に再生することはできませんが、3.0 デバイスでは動作しています。アイデア?
//h file
@interface AudioTest {
AVAudioPlayer *player;
}
@property (nonatomic, retain) AVAudioPlayer *player;
- (void)playSound;
//m file
@synthesize player;
- (void)playSound {
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath];
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
[fileURL release];
self.player = newPlayer;
[newPlayer release];
[self.player prepareToPlay];
[self.player setDelegate:self];
[self.player play];
}