AVAudioPlayer使得咔嗒/噼噗声歌曲时启动/停止

问题描述 投票:1回答:3

我使用AVAudioPlayer播放音乐文件。当我打电话startstop,有一个听得见的“咔嗒”或“POP”噪声。我曾与MP3和CAF文件试了一下,听见它在这两种情况下(虽然我没有听到它每一次)。有谁知道如何防止这些出问题的噪音?

ios avaudioplayer
3个回答
3
投票

对于任何人谁在未来一旦出现这种情况,你必须把该AVAudioPlayer量下降到0,然后调用qazxsw POI〜0.5秒后。


0
投票

最后我用斯威夫特的淡入功能。我没有注意到的停止弹出,但我敢肯定你会类似的东西来解决这个问题了。这里是我是如何实现它的一个例子。请注意,在我viewDidLoad中我也初始化一些音频设置。您可能有褪色时间做实验,以完善自己的声音。

stop

0
投票

下面的技巧是只在 import UIKit import AVKit var audioPlayer = AVAudioPlayer() override func viewDidLoad() { super.viewDidLoad() initializeAudioPlayer() } func initializeAudioPlayer() { do { try session.setCategory(AVAudioSessionCategoryPlayback) try session.setActive(true) } catch { print(error) } } func soundButtonTapped() { let tuneURL:URL = Bundle.main.url(forResource: "left", withExtension: "wav")! playSound(tuneURL, withDelay: 0.1) } func playSound(_ tuneURL: URL, withDelay delay:Double) { do { audioPlayer = try AVAudioPlayer(contentsOf: tuneURL, fileTypeHint: AVFileTypeMPEGLayer3) //old version of Swift AVFileType.mp3.rawValue audioPlayer = try AVAudioPlayer(contentsOf: tuneURL, fileTypeHint: AVFileTypeMPEG4) audioPlayer = try AVAudioPlayer(contentsOf: tuneURL, fileTypeHint: AVFileTypeWAVE) audioPlayer.volume = 0.0 //start it at zero audioPlayer.numberOfLoops = -1 //loop on audioPlayer.prepareToPlay() audioPlayer.play() audioPlayer.setVolume(1, fadeDuration: delay) //fade in with delay } catch let error as NSError { NSLog(error.description) } } 音频播放工作。

当我们需要调用stop停止音频播放,我们可以先调用stop和随后pause。这意味着在我们的定制停止方法,我们使用stoppausestop停止播放,还可以防止弹出或者点击噪音。

© www.soinside.com 2019 - 2024. All rights reserved.