2016-11-28 54 views
0

你好我正在開發一個Swift應用程序,我需要從URL鏈接開始一個AudioFile。如何在Swift 3中打開URL鏈接?

let metadateObj = metadataObjects[0] as! AVMetadataMachineReadableCodeObject 

    if metadateObj.type == AVMetadataObjectTypeQRCode { 

     let BarcodeObject = videoPreviewLayer?.transformedMetadataObject(for: metadateObj as AVMetadataMachineReadableCodeObject) as! AVMetadataMachineReadableCodeObject 
     qrCodeframeView?.frame = BarcodeObject.bounds 

     if metadateObj.stringValue != nil { 

      Label.text = metadateObj.stringValue 

基本上我有QR碼相機應掃描QR碼(mp4文件的鏈接),並將其保存爲Label.text

然後,我使用此代碼:

let movieURL: NSURL? = NSURL (string: "\(Label.text)") 
     if let url = movieURL { 
      self.avPlayer = AVPlayer(url: url as URL) 
      self.avPlayerViewController.player = self.avPlayer 
    } 

啓動播放器,但不播放mp4文件。

從另一方面,如果我有實際的鏈接替換Label.text:

let movieURL: NSURL? = NSURL (string: "http://techslides.com/demos/sample-videos/small.mp4") 
     if let url = movieURL { 
      self.avPlayer = AVPlayer(url: url as URL) 
      self.avPlayerViewController.player = self.avPlayer 
    } 

這完美的作品:我很困惑,我相信,我把一切都正確的,因爲它不是我第一次這樣做。但在這種情況下,它不起作用。你能否找到我愚蠢的錯誤,我感到沮喪!

+0

你是什麼Label.text的確切價值? – rmaddy

+0

請檢查更新後的答案 – Dakata

+0

您的更新並未顯示Label.text的實際值和準確值。 – rmaddy

回答

1

也許試試這個:

OpenLabelButton.isHidden = false 
      Label.isHidden = true 
      captureSession?.stopRunning() 

      label2 = Label.text! 

然後

let movieURL: NSURL? = NSURL (string: "\(label2)") 
      if let url = movieURL { 

希望工程:)

+0

這就是我需要的,謝謝它的完美工作。 – Dakata

+1

Swift 3你應該使用URL而不是NSURL。 BTW Swift是一種類型推斷的語言。試一試。 –

+0

爲什麼使用'「\(label2)」'作爲參數而不是簡單的'label2'? – rmaddy