(使用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];
但是它不起作用,我决定在线程中这样做: 在init方法中:
[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秒然后停止。没有调试就无法播放。有什么问题?
答案 0 :(得分:2)
AVAudioPlayer将立即解除分配。你需要留住玩家。 因此,请将AVAudioPlayer设为类的实例变量。