0

こんにちは、iphoneからオーディオファイルを選んでFirebaseストレージにアップロードしようとしています。Firebase Swiftにオーディオをアップロード

これは私がオーディオファイルを選んでいます方法です

public func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection){ 

    let url = mediaItemCollection.items[0].assetURL 

    if let u = url?.path{ 

     if let audioUrl = URL(string: u){ 
      con?.addNewProduct(name: "Music Test", desc: audioUrl, category: "Horror") 
      print("Selected Audio : \(audioUrl)") 
     } 

    } 


    audioSelected = true 
    self.dismiss(animated: true, completion: nil) 
} 

これは、ストレージ

private func uploadAudio(pRef: FIRDatabaseReference, videoUrl: URL, name: String, category: String){ 
    if let url : String = pRef.url{ 
     let storageRef = storage?.reference(withPath: "Products/Audios/\(url).mp3") 
     let metaData = FIRStorageMetadata() 
     metaData.contentType = "audio/mp3" 
     //let movUrl = URL(string: desc) 
     let task = storageRef?.putFile(videoUrl, metadata: nil, completion: { 
      meta, error in 
      if error != nil{ 
       print("Error uploading File") 

      } 
     }) 


     task?.observe(.success, handler: { 
      snap in 
      switch snap.status{ 
      case .success: 

       pRef.child("name").setValue(name) 
       print("Child Added at \(self.dbRef?.child(category).child(name).url)") 
       pRef.child("movUrl").setValue(url) 
       //pRef?.child("desc").setValue(desc) 

       if self.uploadReporter != nil{ 
        self.uploadReporter?.imageUploadStatus(status: true) 
       } 
      case .failure: 
       if(self.uploadReporter != nil) 
       { 
        self.uploadReporter?.imageUploadStatus(status: false) 
       } 
       print("Failed") 
      // MessageBox.Show(message: "Image Upload failed", title: "Upload Failed", view: nil) 
      default: 
       print("default") 
      } 
     }) 
     task?.observe(.progress, handler: { 
      snap in 
      if let p = snap.progress?.fractionCompleted{ 
       if self.uploadReporter != nil{ 
        self.uploadReporter?.reportProgress(progress: Float(p)) 
       } 
      } 
     }) 
    } 
} 

にオーディオファイルをアップロードするためのコードですが、私はFirebaseにオーディオをアップロードしようとするたびにストレージ、それは私にエラーを与える。

ここがエラーです。

2017-05-17 03:52:00.615633+0500 VideoOrganizer[344:23801] CFURLResourceIsReachable failed because it was passed an URL which has no scheme 
2017-05-17 03:52:00.621135+0500 VideoOrganizer[344:23801] Body file is unreachable: /item.mp3 
Error Domain=NSCocoaErrorDomain Code=4 "The file doesn’t exist." 

このエラーで私を助けてください。私は本当にこの問題を取り除こうとしているが成功していない。ありがとう。

答えて

-1

パスの先頭にfile://を追加してみてください。

+0

詳細を書いてください。どこにfile://を追加しますか?私はこれを試したが、これは助けにはならない。 –

+0

ここでは、この質問に回答したリンクをいくつか示します:http://stackoverflow.com/questions/26080120/cfurlcopyresourcepropertyforkey-failed-because-passed-url-no-scheme http://stackoverflow.com/questions/18404610/cfurlresourceisreachable-failed-was-was-passed-this-url-of-no-sche http://stackoverflow.com/questions/35178172/error-in-finding-path-in-the-device –

関連する問題