使用 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 模拟器中有效,但在设备中无效的主要内容,如果未能解决你的问题,请参考以下文章

AVAudioPlayer 15 次不播放音频

使用 AVAudioPlayer 播放音频

无法在 swift 4 中使用 avaudioplayer 播放 http 音频

使用 AVAudioPlayer iOS 9 无法在后台播放音频

如何在 Swift 3 中使用 AVAudioPlayer 播放 .ogg 音频文件?

使用 AVAudioPlayer 播放音频时出错