我正在使用objective-c为iPhone制作游戏。我有我想在项目的文件中播放的音乐。我需要知道如何让它在应用程序启动时开始播放,并在最后循环播放。有谁知道如何做到这一点?代码示例会很棒!谢谢。
问问题
1587 次
2 回答
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 框架导入到你的项目中。
于 2012-08-07T23:18:00.503 回答
1
首先将 AVFoundation 框架导入您的项目。然后将音乐文件插入到您的项目中。
宣布
#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];
于 2012-08-07T22:58:09.303 回答