2012-01-02 2 views
2

何らかの理由で、AVAudioPlayerのサウンドを読み込めません。 iPadのデバイスでテストしています。AVAudioPlayerでサウンドが読み込まれない

私のコードはかなりストレートですが、派手なものはありません。フレームワークがインポートされ、デリゲートが実装されます。私のviewDidLoad方法で:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"]; 
AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] 
          initWithContentsOfURL:[NSURL fileURLWithPath:path] 
              error:NULL]; 
[theAudio setDelegate:self]; 
[theAudio prepareToPlay]; 
[theAudio play]; 

これは、オーディオを再生することができません。しかし、偶然にもすぐにUIAlertViewを表示すると、オーディオクリップの最初の2秒間再生できます。つまり、アプリが読み込まれ、2秒間の音声が聞こえると、アラートがポップアップして音声がカットされます。

したがって、AVAudioPlayerコードが多少動作しているようです。

何が起こっているのか、どのように私は単にオーディオを再生することができますか?

答えて

11

問題は、ARCを使用しているため、変数が有効範​​囲外になったときにAVAudioPlayerの割り当てが解除されることです。変数theAudioをインスタンス変数として宣言し、それをviewDidLoadに代入する必要があります。だから、あなたの.hファイルで:

その後
@interface MyViewController : UIViewController { 
    AVAudioPlayer *theAudio; 
    ... 
} 
... 
@end 

、あなたがのviewDidLoadでtheAudioを割り当てるラインからAVAudioPlayer *を取り除きます。これにより、View Controllerはオーディオプレーヤーを保持するため、再生前にプレーヤーの割り当てが解除されることはありません。

関連する問題