2016-06-25 2 views
0

私は単純なゲームに取り組んでいて、すべての画面がタッチされた後、小さなUIImageViewでアニメーションが起こっています。これは非常にうまく起こり、アプリケーションはタイマーとしてCADisplayLinkで円滑に動作しています。AVAudioPlayerが時々アプリを突き上げる

私はAVAudioPlayerのような音を想像すると1秒lenghですべてのタッチ後に再生するmp3ファイルを追加しました:だから私は触れて初めて画面最初のしゃっくりがより少ないため、アプリの凍結を起こるのBip

私はそれがサウンドがメモリを割り当てるのは初めてです。

3秒以上前にタッチすると再び画面に触れると問題が発生しますが、アプリがヒップアップしませんが、4秒以上待つと、タッチするたびにアプリがうまく始まります。

タッチするたびに3秒以上前に何度も何度も繰り返しタッチすると、アプリはうまくいきませんが、タッチしてから4秒後にアプリが起き上がります。

何か問題は解決できますか?

@property (nonatomic, strong) AVAudioPlayer *mySound; 

- (void)viewDidLoad { 

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"bip" ofType:@"mp3"]; 
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath]; 
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil]; 

self.mySound = newPlayer; 

[mySound prepareToPlay]; 
[mySound setDelegate:self]; 
} 

とタッチが

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
UITouch *touch = [[event allTouches] anyObject]; 
CGPoint location = [touch locationInView:touch.view]; 
if (location.x < viewWidth/2) { 
    [mySound play]; 
} else { 
    [mySound play]; 
} 
} 
+0

ボタンにある他のコードを表示できますか? – Ro4ch

+0

私はボタンを一切使用せず、画面のどこにでも触れるだけです。私はあなたのために私の質問を編集しました。 –

答えて

0

非常に短い沈黙の音を作るに起こった後、必要に応じて

これはいくつかのコードです。毎秒それを(別のサウンドプレーヤーで)再生するためにあなたのタイマーを使用してください。 - あなたはそのアイデアがここにあるのを見ます。メディアサーバーを生き生きとした状態に保ち、サウンドエフェクトが必要なときに準備が整うようにします。 3秒前に問題はないと言われているので、3秒後にメディアサーバーがスリープ状態に復帰したと思います。私たちの目標は、それが起こらないように「くすぐる」ように保つことです。

しかし、私の印象は、AVAudioPlayerはこのようなことを意図していないということです。おそらく、AVAudioEngineを使用している必要があります。AVAudioEngineは、実行し続けて、待ち時間なくサウンドを再生することができます。

+0

マット私はそれをやったが解決しなかったが、私が正しいのかどうかはわからない。私は1秒ごとに発射されるifステートメントを作成しませんでしたが、毎秒発射するifステートメントがあり、その中に[mySound prepareToPlay]を配置しましたが、解決されませんでした。 Matt私はシミュレータ上のアプリケーションをテストし、問題は顕著ではありませんが、私は私の電話(6s +)でそれをテストすると問題は以前と同じように起こります。 –

+0

ありがとうMatt sooo much :))これはちょうどそれを解決しました。メディアサーバーのこのリリースは、ARCがオンになっているために発生しています。私はそれを生き続けるために1分の静かなループ音を作りたいと思っています。これが1分に1回呼び出され、別のプロセスに干渉するチャンスが少ないので、これが全体的なパフォーマンスにとって良い方法だと思いますか? –

関連する問題