2011-01-20 10 views
0

こんにちは、私は電子ブックリーダーを開発しています。アイコンをクリックすると再生する必要のあるオーディオファイルがいくつかあります。しかし、私はアプリのホームボタンを押してオーディオプレーヤーに戻ると、オーディオは2回再生されています...私は家を押すたびに1つずつ数字が増加し続けますボタンを押して、オーディオプレーヤーに戻ってきて....あなたは私の入力を助けてください....私はこのループは複数回実行されていることを発見したデバッグ...誰も私の理由を教えてくれますか?ホームボタンを押したときにオーディオが2回再生される

-(void)StartPlayingFileWithNotification:(NSNotification *)notifcation{ 
// Load the array with the sample file 
NSString *f = [[notifcation userInfo] valueForKey:@"audiopath"]; 
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: f]; 
if(fileURL == nil){ 
    GLogError(@"%@",@"File Not Found"); 
    return; 
}else { 
    GLogInfo(@"%@",@"Got audio file"); 
} 
if (self.player != nil) { 
    if (self.player.playing) { 
     [self.player stop]; 
    } 
    [player release]; 
    player = nil; 
} 

self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil]; 
if (self.player) 
{ 
    fileName.text = [NSString stringWithFormat: @"%@ (%d ch.)", [[player.url relativePath] lastPathComponent], player.numberOfChannels, nil]; 
    [self updateViewForPlayerInfo:player]; 
    player.numberOfLoops = 0; 
    player.delegate = self; 
    [player play]; 
    [self updateViewForPlayerState:player]; 
} 
[fileURL release]; 

}

答えて

0

あなたは以前のものはまだ周りに、実行するかどうかをチェックせず、あなたのオーディオプレーヤーを含む新しいビュー(またはその他のオブジェクト)を作成しているように聞こえます。別のアクティビティを作成する前に有効にするか、アプリがアクティブになったときに古いものをクリーンアップするかのどちらかを選択できます。

+0

こんにちは、こんにちは、ありがとうございました....私はそれをやる方法についてもう少し説明してください....私はオーディオファイルを割り当てるためにシングルトンオブジェクトを使用していますが、まだ私はソリューションを見つけることができませんでした.. –

+0

あなた自身をデバッグするのが最適です。オーディオプレーヤーを割り当て、サウンドを再生するルーチンにデバッガブレークポイントを配置してみてください。これらのルーチンとはいつ呼び出されているのか、そしていつ参照してください。 – hotpaw2

+0

私はブレークポイントでコードをデバッグしようとしましたが、オーディオファイルが割り当てられているループが複数回実行されていることが判明しました。 –

関連する問題