繁体   English   中英

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

[英]AVAudioPlayer playing Sound with very low volume in iPhone 6 and 6+

我正在使用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()

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

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

编辑

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

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

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

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

AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker, error: &error)

Swift 3.0

do {
     try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
   } catch _ {
}

我想如果你将AVAudioPlayer的音量设置为1,则问题出在系统音量上。 播放声音时可以使用不同的音频类别,不同类别或不同音频路径的音量不同(如母语,耳机或蓝牙)。应用程序中的默认类别为环境 ,但音乐应用程序正在播放 您可以尝试在播放声音时调整音量,而不是在播放之前调整音量。

Swift 4的解决方案

try? session.setCategory(.playAndRecord, mode: .default, policy: .default, options: .defaultToSpeaker)

PS全班,你可以查看我的要点

您还需要最大化媒体量。

extension MPVolumeView {
var volumeSlider:UISlider {
    self.showsRouteButton = false
    self.showsVolumeSlider = false
    self.hidden = true
    var slider = UISlider()
    for subview in self.subviews {
        if subview.isKindOfClass(UISlider){
            slider = subview as! UISlider
            slider.continuous = false
            (subview as! UISlider).value = AVAudioSession.sharedInstance().outputVolume
            return slider
        }
    }
    return slider
   }
}

然后像这样改变音量:

func setMediaVolume(volume : Float) {
    MPVolumeView().volumeSlider.value = volume
}

在您的情况下,setMediaVolume(1)就在您播放音频之前。

还要确保当前的音频路线是扬声器而不是听筒,你可以使用

try! AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker)

我也在快速的操场上体验过这个,音量远小于原始文件中的声音。 只是增加音量。

audioPlayer?.volume = 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM