0

안녕하세요, 아이폰에서 오디오 파일을 선택하고 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)) 
       } 
      } 
     }) 
    } 
} 

하지만 난 중포 기지에 오디오를 업로드하려고 할 때마다 저장, 그것은 나에게 오류를 제공합니다.

다음은 오류입니다.

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-has-no-sche http://stackoverflow.com/questions/35178172/error-in-finding-path-in-the-device –