Ios AVP播放器不能正常工作
我试图在SpriteKit应用程序中使用objective C中的AVPlayer,但由于某些原因,尽管URL定义正确,我还是听不到音乐 (这是从gameviewcontroller运行的)Ios AVP播放器不能正常工作,ios,objective-c,sprite-kit,avplayer,Ios,Objective C,Sprite Kit,Avplayer,我试图在SpriteKit应用程序中使用objective C中的AVPlayer,但由于某些原因,尽管URL定义正确,我还是听不到音乐 (这是从gameviewcontroller运行的) 您应该创建audioPlayer的strong属性,而不是在viewDidLoad方法中创建音频播放器 @属性(非原子,强)AVAudioPlayer*BKMPlayer1 这是因为,一旦控件退出功能,ARC就会释放音频播放器。我会避免使用AVPlayer。改为使用SKAudioNode,这样您可以使音乐与
您应该创建audioPlayer的
strong
属性,而不是在viewDidLoad
方法中创建音频播放器
@属性(非原子,强)AVAudioPlayer*BKMPlayer1
这是因为,一旦控件退出功能,ARC就会释放音频播放器。我会避免使用
AVPlayer
。改为使用SKAudioNode
,这样您可以使音乐与场景保持同步,但音乐需要从viewcontroller播放,因为它很容易传递变量来说明用户是否按下了主菜单上的静音按钮。
-(void)viewDidLoad{
[super viewDidLoad];
[self prefersStatusBarHidden]; //hopefully stop an annoying bug.
NSLog(@"Is it on? %d", _playingMusic);
if(_playingMusic == 1){ //set audio to play if requested
NSString *soundPath1 = [[NSBundle mainBundle] pathForResource:@"new_twig_BK2_rehash" ofType:@"mp3"];
NSURL *soundURL1 = [NSURL fileURLWithPath: soundPath1];
AVAudioPlayer *BKMPlayer1 = [[AVAudioPlayer alloc] initWithContentsOfURL:soundURL1 error:nil];
BKMPlayer1.numberOfLoops = -1; //infinite loops
[BKMPlayer1 setVolume: 1.0];
[BKMPlayer1 stop];
[BKMPlayer1 setCurrentTime:0];
[BKMPlayer1 play];
}
}