AVAudioPlayer在iPhone 6和6+中播放音量非常低的声音

Zai*_*han 14 avaudioplayer ios swift

我正在播放声音AVAudioPlayer.

iPod中的音量(iOS7和iOS8都很好).

但是当我在iPhone中播放相同的声音时,声音播放的音量非常低.

这是我的代码:

var audioPlayer: AVAudioPlayer?
var soundURL:NSURL? = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sound", ofType: "mp3")!)

audioPlayer = AVAudioPlayer(contentsOfURL: soundURL, error: nil)
audioPlayer?.prepareToPlay()
audioPlayer?.volume = 1
audioPlayer?.play()
Run Code Online (Sandbox Code Playgroud)

我已经在我的项目中包含了AudioToolbox.framework库.

如何改善iPhone6和6+的声音?

编辑

最近我注意到声音自动增加了几秒钟,但不知道发生了什么错误.

Vip*_*ney 54

音量很低,因为声音来自iPhone的顶部扬声器(用于呼叫).

您必须将AVAudioSession输出端口覆盖到主扬声器.(底部扬声器)

这是将音频输出路由到扬声器的代码

AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker, error: &error)
Run Code Online (Sandbox Code Playgroud)

Swift 3.0:

do {
     try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
   } catch _ {
}
Run Code Online (Sandbox Code Playgroud)

  • 永久设置:`audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord,with:AVAudioSessionCategoryOptions.defaultToSpeaker)` (7认同)

Boh*_*ych 6

Swift 4解决方案

try? session.setCategory(.playAndRecord, mode: .default, policy: .default, options: .defaultToSpeaker)
Run Code Online (Sandbox Code Playgroud)

PS对于全班,你可以检查我的要点


小智 5

我认为如果将AVAudioPlayer的音量设置为1,则问题出在系统音量上。播放声音时,您可以使用不同的音频类别,并且在不同类别或不同音频路径(例如,本机扬声器,耳机或蓝牙)中,音量也不同。您应用中的默认类别为环境,但音乐应用为播放。您可以在播放声音时而不是在播放声音之前尝试调节音量。