使用 AVAudioPlayer 播放的音频在 iPhone 模拟器中有效,但在设备中无效
Posted
技术标签:
【中文标题】使用 AVAudioPlayer 播放的音频在 iPhone 模拟器中有效,但在设备中无效【英文标题】:Audio played using AVAudioPlayer is working in iPhone Simulator but not in the Device 【发布时间】:2012-06-28 08:32:05 【问题描述】:我需要播放一段视频以及一段 2 秒的小音频。在 iPhone 模拟器中一切正常,但在设备中却不行。我将音频文件存储在项目包中并从那里播放音频。
NSString *gotItsoundFilePath = [[NSBundle mainBundle] pathForResource:@"gotit" ofType:@"mp3"];
NSData *gotItsampleData = [[NSData alloc] initWithContentsOfFile:gotItsoundFilePath];
NSError *gotItaudioError = nil;
gotItAudioPlayer = [[AVAudioPlayer alloc] initWithData:gotItsampleData error:&gotItaudioError];
gotItAudioPlayer.numberOfLoops = 0;
当我使用[gotItAudioPlayer play];
时,此代码在 iPhone 模拟器中运行良好,但相同的构建在设备中不起作用。我在某处做错了吗?有人可以帮忙吗?
【问题讨论】:
设备和模拟器的ios版本是多少? 【参考方案1】:[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);
把这个代码。在你制作玩家对象之前。
【讨论】:
以上是关于使用 AVAudioPlayer 播放的音频在 iPhone 模拟器中有效,但在设备中无效的主要内容,如果未能解决你的问题,请参考以下文章
无法在 swift 4 中使用 avaudioplayer 播放 http 音频
使用 AVAudioPlayer iOS 9 无法在后台播放音频