2017-05-10 53 views
0

我是Swift的新手,我设法从firebase下载音频并将其存储在本地,但不知道如何使用AVAudioPlayer播放。任何帮助,将不胜感激。这是我到目前为止。Swift 3播放从Firebase下载的音频

class FireBaseViewController: UIViewController { 

    var audioPlayer:AVAudioPlayer = AVAudioPlayer() 

    override func viewDidLoad() { 
     super.viewDidLoad() 


     let storageRef = FIRStorage.storage().reference() 

     let files = storageRef.child("Audio/Self Commitment.m4a") 

     let localURL: NSURL! = NSURL(fileURLWithPath:"/Users/wayne/Desktop/Playground/Audio/Self Commitment.m4a") 

     let downloadTask = files.write(toFile: localURL as URL) { (URL, error) -> Void in 
         if (error != nil) { 
          print("Uh-oh, an error occurred!") 
         } else { 
          print("Local file URL for is returned") 
         } 
        } 

       let audioPath = localURL 

     do { 

      try audioPlayer = AVAudioPlayer(contentsOf:URL(fileURLWithPath: audioPath)) 

     } catch {print("file is unavilable") 

     } 
     audioPlayer.play() 

    } 

    } 

回答

0

我有同样的问题。我所做的就是使用文件管理器来生成在那里我会存储我的文件

let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("file_name.mp3") 

然后就可以保存文件,播放这样的网址:

storeRef.getData(maxSize: 10 * 1024 * 1024) { (data, error) in 
     if let error = error { 
      print(error) 
     } else { 
      if let d = data { 
       do { 
        try d.write(to: fileURL) 
        self.audioPlayer = try AVAudioPlayer(contentsOf: fileURL) 
        self.audioPlayer.play() 
       } catch { 
        print(error) 
       } 
      } 
     } 
    } 

我已经尝试过了,它的工作!