【发布时间】:2013-04-25 19:51:23
【问题描述】:
任何人都可以指导我学习教程,或者向我展示播放背景音乐的实际代码。我需要它能够启动和停止。这不是一个任务,所以你知道。我的任务已经完成了,我只想给它添加音乐,我不知道怎么做。谢谢!
【问题讨论】:
标签: iphone ios objective-c background-music
任何人都可以指导我学习教程,或者向我展示播放背景音乐的实际代码。我需要它能够启动和停止。这不是一个任务,所以你知道。我的任务已经完成了,我只想给它添加音乐,我不知道怎么做。谢谢!
【问题讨论】:
标签: iphone ios objective-c background-music
您可以使用 AVAudioPlayer
//You have to import AvFoundation to use AVAudioPlayer
#import <AVFoundation/AVFoundation.h>
-(void) playMusicFile:(NSString *) songName
{
NSString *musicFile = [[NSBundle mainBundle] pathForResource:songName ofType:@"mp3"];
NSError *soundError = nil;
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:musicFile] error:&soundError];
if(self.audioPlayer == nil)
{
NSLog(@"%@",soundError);
}
else
{
//Delegation is optional but it helps you do stuff after song finished playing etc
[self.audioPlayer setDelegate:self];
//Set number of repeats, 0 is default plays once, negative values makes it play infinitely
[self.audioPlayer setNumberOfLoops:0];
//Prepare to play is not always necessary, but otherwise it can take time to play
[self.audioPlayer prepareToPlay];
[self.audioPlayer play];
}
}
//This is the delegate called after the song finished playing, you can use it to play other songs, or do other stuff
-(void) audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
...
}
停止和暂停:
//You can easily stop and pause using:
[self.audioPlayer stop]; //Stop doesn't work as you would expect. It doesn't set the current time to 0 but only undoes the setup you had with the audioplayer.
[self.audioPlayer pause];
//It is possible to call [self.audioPlayer play] after each method and playback will continue from where it left off.
【讨论】:
AVPlayer 和 AVAudioPlayer 应该可以工作。
【讨论】: