2012-03-25 54 views
1
-(void)viewDidAppear:(BOOL)animated 

{ 
    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Intro", 
               CFSTR ("wav"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID (soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound (soundID); 
} 

我是初學者。我試圖在視圖控制器的背景下播放一個wav文件。我原本做了一個30秒的wav文件,它不會播放,我將音頻文件的長度縮短到10秒,並且在視圖控制器上播放得很好。我的問題是,如何循環播放這個音頻文件和/或播放更長的音頻文件。另外,當我離開視圖控制器時音頻會停止。如何在特定的視圖控制器上循環播放音頻

我使用的Xcode 4.3 我運行的應用程序上一部iPhone4 & 4S(iOS版5.1)

在此先感謝...

回答

5

蘋果文檔狀態

http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/SystemSoundServicesReference/Reference/reference.html

您可以使用System Sound Services播放短時間(30秒或更短)的聲音。該界面不提供電平,定位,循環或定時控制,並且不支持同時播放:一次只能播放一個聲音。您可以使用System Sound Services來提供可聽警報。在某些iOS設備上,警報可能包含振動。

因此,在使用系統聲音時沒有迴路可用。

你可以看看這個教程 http://mobileorchard.com/easy-audio-playback-with-avaudioplayer/

- (void)viewDidLoad { 
[super viewDidLoad]; 

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3", [[NSBundle mainBundle] resourcePath]]]; 

NSError *error; 
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
audioPlayer.numberOfLoops = -1; 

if (audioPlayer == nil) 
    NSLog([error description]); 
else 
    [audioPlayer play]; 

} 

中說,如果你的numberOfLoops屬性設置爲負數導致audioPlayer無限循環

不要忘記添加AVFoundation框架到您的項目

+0

感謝了它的工作。 – Austinj 2012-03-25 16:18:26