(使用AVFoundation.framework)
#import "AVFoundation/AVFoundation.h"
所以我遇到了一个问题,我首先在类的init方法中尝试了此代码(即首先加载的代码)
NSString* soundFilePath = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"];
NSURL* soundFileURL = [NSURL fileURLWithPath:soundFilePath];
AVAudioPlayer* player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
player.numberOfLoops=-1;
[player play];
但这没有用,比我决定在线程中做:
在初始化方法中:
[NSThread detachNewThreadSelector:@selector(playMusic) toTarget:self withObject:nil];
和方法本身:
-(void) playMusic {
NSString* soundFilePath = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"];
NSURL* soundFileURL = [NSURL fileURLWithPath:soundFilePath];
AVAudioPlayer* player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
player.numberOfLoops=-1;
[player play];
}
它是在* .h文件中声明的。它也没有用。
我尝试在线调试
}
使用playMusic方法播放文件2到3秒钟,然后停止。没有调试就无法播放。问题是什么?
最佳答案
AVAudioPlayer将立即被释放。您需要保留播放器。
因此,使AVAudioPlayer为该类的实例变量。
关于objective-c - 背景音乐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10402645/