2016-07-28 4 views
2

Comment déclarer AKAudioPlayer?Lecture du son avec AKAudioPlayer - iOS

J'utilise AudioKit Lib et j'ai juste besoin d'aide pour lire le fichier .wav avec le bouton de changement de fichier.

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

      } 

     } 

Répondre

2

Ceci est une solution très rapide à votre problème. Cela peut être fait mieux mais au moins vous pouvez avoir l'idée.

Essayez d'abord de créer une nouvelle classe avec une fonction pour lire votre fichier, puis une autre fonction pour recharger votre nouveau fichier de remplacement comme ceci.

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

Initié de la classe à l'intérieur de votre vue

class testViewController: UIViewController { 

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

écouter de la musique dans votre vue

override func viewDidLoad() { 
    super.viewDidLoad() 

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

} 

Ensuite, lorsque vous voulez recharger un nouveau fichier, utilisez la fonction REPLAY

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

} 
+1

Merci beaucoup – EssamSoft

+1

De rien! –