動画のストリーミング再生をしたいのですが出来ません。
元々、ビデオプレイヤーが下から出てきて全画面で再生する仕様だったのですが
UIViewの中だけで再生させたいので以下のコードにしました
しかし全画面レイヤーが立ち上がり、何も再生されず、全画面レイヤーを閉じるとサムネだけがUIViewに表示されるという事になってしまいました。
アドバイスよろしくお願いします
import UIKit import AVFoundation import AVKit class ViewController: UIViewController { @IBOutlet weak var label: UILabel! @IBOutlet weak var Play_View: UIView! override func viewDidLoad() { super.viewDidLoad() } func playMovieFromUrl(movieUrl: URL?) { if let movieUrl = movieUrl { let videoPlayer = AVPlayer(url: movieUrl) let playerController = AVPlayerViewController() playerController.player = videoPlayer //レイヤー生成(これが間違っている?) let playerLayer = AVPlayerLayer(player: videoPlayer) playerLayer.frame = self.Play_View.bounds self.Play_View.layer.addSublayer(playerLayer) self.present(playerController, animated: true, completion: { videoPlayer.play() }) } else { print("cannot play") } } func playMovieFromPath(moviePath: String?) { if let moviePath = moviePath { self.playMovieFromUrl(movieUrl: URL(fileURLWithPath: moviePath)) } else { print("no such file") } } //labelによって再生動画を分けている。labelのテキスト内容は遷移する時に値渡しをして分けている func Play(){ if label.text == "りんご"{ playMovieFromUrl(movieUrl: URL(string: "https://d2qguwbxlx1sbt.cloudfront.net/TextInMotion-VideoSample-576p.mp4")) }else if label.text == "みかん"{ playMovieFromUrl(movieUrl: URL(string: "みかん動画")) } } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/08 03:33
2020/07/08 04:23 編集
2020/07/08 04:38
2020/07/08 05:59 編集
2020/07/08 06:11