2016-07-28 14 views
2

So deklarieren Sie AKAudioPlayer?Sound abspielen mit AKAudioPlayer - iOS

Ich benutze AudioKit Lib und ich brauche nur Hilfe, .wav Datei mit Änderungsdatei-Taste zu spielen.

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() 

      } 

     } 

Antwort

2

Dies ist eine sehr schnelle Lösung für Ihr Problem. Es kann besser gemacht werden, aber zumindest können Sie die Idee bekommen.

Zuerst versuchen, eine neue Klasse mit einer Funktion zum Abspielen Ihrer Datei und dann eine andere Funktion, um Ihre neue Ersatzdatei wie folgt neu zu erstellen.

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() 
    } 
} 

einleiten Klasse innerhalb Ihrer Ansicht

class testViewController: UIViewController { 

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

in Ihrer Ansicht

override func viewDidLoad() { 
    super.viewDidLoad() 

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

} 

Dann Spielen Sie Ihre Musik, wenn Sie die Wiedergabe-Funktion eine neue Datei

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

} 
neu geladen werden soll verwenden
+1

Vielen Dank – EssamSoft

+1

Gern geschehen! –