2011-12-21 36 views
1

因此,我爲我工作的醫院製作了一個音板,它爲放療師播放了不同的呼吸音,以便爲進一步的教育和學員聽取意見。我可以停下來,開始很好的聲音。我遇到的問題是聲音完整。您必須點擊任意按鈕兩次才能播放下一個聲音。所以我想知道如何在完成後重置聲音文件。我對obj-c非常陌生,我的直覺告訴我要實現NSTime,但是我不知道如何去做,或者如果這甚至是我想要做的。Xcode iOS:如何在使用AVFoundation播放後重置聲音

在此先感謝!

- (IBAction)play { 
    if (soundIsPlaying == YES) { 
     [audioplayer release]; 
     soundIsPlaying = NO; 
    } 

    else if (soundIsPlaying == NO) { 
     NSString *path = [[NSBundle mainBundle] pathForResource:@"breathe1" ofType:@"wav"]; 
     audioplayer=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
     audioplayer.delegate = self; 
     audioplayer.volume = 1.2; 
     audioplayer.numberOfLoops = 0; 
     [audioplayer play]; 
     soundIsPlaying = YES; 
    } 
} 
+0

本意是說*** NSTimer – GhostShaman 2011-12-21 02:26:51

回答

0

如果您使用的是AVAudioPlayer,您可以設置一個名爲numberOfLoops的屬性。 簽出Apple網站上的AVAudioPlayer類參考。

+0

我沒有使用AVAudioPlayer,但我會看看它 – GhostShaman 2011-12-21 03:13:13

+0

根據你的代碼,你使用AVAudioPlayer,你設置你的numberOfLoops = 0這意味着只玩一次。 – user523234 2011-12-21 08:53:53

+0

你知道自己有什麼權利...我有一個頭冷,所以它沒有幫助我的思維過程。 – GhostShaman 2011-12-21 12:59:04

0

我不知道這是否會工作,但也許如果你改變

audioplayer.numberOfLoops = 0; 

audioplayer.numberOfLoops = -1; 

,使其循環播放,直到停止。

+0

某些聲音文件很短。我曾考慮過循環直到停止,但我並不想要,因爲我希望用戶知道呼吸何時完成。此外,這有助於模式呼吸檢測,但我不會進入乏味的RT細節。感謝您的反饋! – GhostShaman 2011-12-21 13:01:23