2016-07-28 6 views
2

Как объявить AKAudioPlayer?Воспроизведение звука с помощью AKAudioPlayer - iOS

Я использую AudioKit Lib, и мне просто нужна помощь в воспроизведении файла .wav с кнопкой файла изменения.

import UIKit 
    import AudioKit 

    class ViewController: UIViewController { 

      let file = NSBundle.mainBundle().pathForResource("song", ofType: "wav") 
      let song = AKAudioPlayer(file!) // <--- ERROR = instance member 'file' cannot be used on type 

      override func viewDidLoad() { 
       super.viewDidLoad() 

       AudioKit.output = song 
       AudioKit.start() 

       song.play() 
      } 


      @IBAction func btn(sender: AnyObject) { 

       song.replaceFile("NewFile") 
       song.play() 

      } 

     } 

ответ

2

Это очень быстрое решение вашей проблемы. Это можно сделать лучше, но, по крайней мере, вы можете получить эту идею.

Сначала попробуйте создать новый класс с функцией воспроизведения вашего файла, а затем еще одну функцию, чтобы перезагрузить новый файл замены, как это.

class PlayMyMusic { 
    var songFile = NSBundle.mainBundle() 
    var player: AKAudioPlayer! 

    func play(file: String, type: String) -> AKAudioPlayer { 
    let song = songFile.pathForResource(file, ofType: type) 
    player = AKAudioPlayer(song!) 
    return player 
    } 

    func rePlay(file: String, type: String, curPlay: AKAudioPlayer) { 
    let song = songFile.pathForResource(file, ofType: type) 
    curPlay.stop() 
    curPlay.replaceFile(song!) 
    curPlay.play() 
    } 
} 

Инициировать класс внутри вашего зрения

class testViewController: UIViewController { 

    let doPlay = PlayMyMusic().play("A", type: "wav") 
    ......... 
    ......... 

Воспроизведение музыки внутри вашей точки зрения

override func viewDidLoad() { 
    super.viewDidLoad() 

    AudioKit.output = self.doPlay 
    AudioKit.start() 
    doPlay.looping = true 
    doPlay.play() 

} 

Затем, когда вы хотите, чтобы перезагрузить новый файл используйте функцию переигровки

@IBAction func btn(sender: AnyObject) { 
    PlayMyMusic().rePlay("C", type: "wav", curPlay: self.doPlay) 

} 
+1

Большое вам спасибо – EssamSoft

+1

Добро пожаловать! –