2017-08-24 18 views
0

私のアプリケーションでは、私は実際のデバイスでローカルビデオを再生したいと思います。システムのWiFiホットスポットを使用して、ネットワークをデバイスに接続しています。AVPlayerはシミュレータで動作しますが、実際のデバイスではありません

このコードは、シミュレータ上では完全に実行されますが、実際のデバイスでは実行されません。

import UIKit 
import AVKit 
import AVFoundation 
class SafaribroserViewController: UIViewController { 

     var playerViewController = AVPlayerViewController() 
     var playerView = AVPlayer() 
     override func viewDidLoad() { 
      super.viewDidLoad() 

     } 


     @IBAction func hsdgfsf(_ sender: Any) { 
      let fileURL = NSURL.init(fileURLWithPath: "/Volumes/E/adam/small.mp4") 
      playerView = AVPlayer(url: fileURL as URL) 
      playerViewController.player = playerView 
      present(playerViewController,animated:true) { 
       self.playerViewController.player?.play() 
      } 
     } 
} 
+0

実際のデバイスでは、URLが変更される可能性があるため、動画が再生されません。このハードコードURLのようにすることはできません。 –

+0

ありがとう、私はこのようなパスを与えることはできませんので、どうすればいいですか?私はローカルサーバーとファイルの場所のIPを知っています –

+0

あなたはサーバーにビデオを格納し、そのURLを取得することができます。または、フォルダ内のドキュメントディレクトリにビデオを保存し、フォルダ内のパスにアクセスできます。 –

答えて

0

これが役立ちます。

import UIKit 
    import AVKit 
    import AVFoundation 

class ViewController: UIViewController { 

var player = AVPlayer() 
override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    playVideo() 
} 

func playVideo() { 
    let path = Bundle.main.path(forResource: "myvideo", ofType:"m4v") 
    let player = AVPlayer(url: URL(fileURLWithPath: path)) 
    let playerController = AVPlayerViewController() 
    playerController.player = player 
    present(playerController, animated: true) { 
     player.play() 
    } 
    } 
} 
関連する問題