我正在使用objective-c为iPhone制作游戏。我有想要在项目中的文件中播放的音乐。我需要知道如何让它在应用程序启动时开始播放,并在最后循环播放。有谁知道如何做到这一点?代码示例会很棒!感谢。
答案 0 :(得分:2)
您可以在App Delegate中使用AVAudioPlayer。
首先在App Delegate .h文件中添加以下行:
#import <AVFoundation/AVFoundation.h>
和这一个:
AVAudioPlayer *musicPlayer;
在.m文件中添加此方法:
- (void)playMusic {
NSString *musicPath = [[NSBundle mainBundle] pathForResource:@"phone_loop" ofType:@"wav"];
NSURL *musicURL = [NSURL fileURLWithPath:musicPath];
musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:nil];
[musicPlayer setNumberOfLoops:-1]; // Negative number means loop forever
[musicPlayer prepareToPlay];
[musicPlayer play];
}
最后用didFinishLaunchingWithOptions
方法调用它:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
[self playMusic];
...
}
如果你想停止音乐:
[musicPlayer stop];
您可以检查AVAudioPlayer委托的Apple文档以处理音频中断http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVAudioPlayerDelegateProtocolReference/Reference/Reference.html
PS:请记住将AVFoundation Framework导入您的项目。
答案 1 :(得分:1)
首先将AVFoundation Framework导入您的项目。然后将音乐文件插入到项目中。
声明
#import <AVFoundation/AVFoundation.h>
然后
AVAudioPlayer *audioPlayer;
NSURL *file = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"soundName" ofType:@"mp3"]];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file error:nil];
audioPlayer.numberOfLoops = -1; // Infinite loops
[audioPlayer setVolume:1.0];
[audioPlayer prepareToPlay];
[audioPlayer start]
您可以在应用程序使用
进入背景之前停止声音 [audioPlayer stop];