卷滑块迅速

时间:2015-07-14 07:32:27

标签: ios swift audio slider airplay

我正在尝试创建一个控制4个音频文件音量的滑块

以下是我的音频代码:

var ButtonAudioURL  = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("audio1", ofType: "mp3")!)

var firstplayer     = AVAudioPlayer()    
var ButtonAudioURL2 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("audio2", ofType: "mp3")!) 

var secondplayer   = AVAudioPlayer()    
var ButtonAudioURL3 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("audio3", ofType: "mp3")!)

var thirdplayer = AVAudioPlayer()    
var ButtonAudioURL4 = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("audio4", ofType: "mp3")!)

var forthplayer = AVAudioPlayer()

override func viewDidLoad() {

    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    firstplayer  = AVAudioPlayer(contentsOfURL: ButtonAudioURL, error: nil)        
    secondplayer = AVAudioPlayer(contentsOfURL: ButtonAudioURL2, error: nil)     
    thirdplayer  = AVAudioPlayer(contentsOfURL: ButtonAudioURL3, error: nil)       
    forthplayer  = AVAudioPlayer(contentsOfURL: ButtonAudioURL4, error: nil)

触摸每个按钮时,我都会播放音频。但我只需要一个滑块来控制每个按钮的每个音频文件的音量。

我该怎么做?我看过developer.apple上的MPVolumeView类引用,但我仍然感到困惑,在MPVolumeView的 developer.apple参考中,它谈到了AirPlay,我可以禁用它吗?

我只需要一个滑块来控制音量。

3 个答案:

答案 0 :(得分:3)

你关闭了!

将滑块拖入故事板,然后为其创建IB outletIB action

IB action代码中,使用firstPlayer.volume = sliderOutlet.value

由于默认值的范围从0到1,因此它们的比例相同,因此可以像这样使用而不进行缩放。您可能需要全局声明AVAudioPlayers,并且可以查看按下了哪个按钮(例如,存储按下按钮名称的变量)。这样,您可以使用4 if语句更改正确的音量,并且不会更改尚未初始化的播放器的音量。

让我知道这是否有效!

答案 1 :(得分:2)

如果你使用 Swift 2 试试这个:

@IBOutlet weak var volumen: UISlider!
var reproductor = AVAudioPlayer()

后:

    @IBAction func sliderValueChanged(sender: UISlider) {

    let selectedValue = Float(sender.value)
    reproductor.volume = selectedValue

}

并在播放声音期间尝试滑块音量。就这些。我帮了。

答案 2 :(得分:1)

我正在使用Xcode 6.我正在构建一个类似的示例,我从故事板中的滑块拖到我的viewController并创建了一个Outlet

@IBOutlet weak var volumeControl: UISlider!
之后我创建了一个动作

@IBAction func adjustVolume(sender: AnyObject) {
    if audioPlayer != nil {
        audioPlayer?.volume = volumeControl.value
    }
}

它对我有用。您可以创建4个滑块并将它们分配给您创建的每个AudioPlayer实例。 在此链接中,您可以找到使用AVAudioPlayer http://www.techotopia.com/index.php/Playing_Audio_on_iOS_8_using_AVAudioPlayer

在iOS8上播放音频的示例