Видеопроигрыватель отображается с крестиком на кнопке Play в iOS swift AVPLayer? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь воспроизвести видео с моего Сервера, но когда я пытаюсь это сделать, я получаю Crossed mark кнопку оплаты.

Все остальные файлы, такие как .ppt, .keynote и т. Д., Работают нормальнокогда я использую их со своим URL-адресом сервера и использую WKWebview, чтобы показать их, но файлы .mp4 не работают.

Я пробовал 2 способа.

1) Воспроизведение напрямую с помощью WKWebview.2) Загрузите файл и сохраните его по локальному пути, а затем используйте AVPlayer для воспроизведения файла.

В обоих случаях я получаю одинаковую метку на кнопке воспроизведения.

func playVideo(url:String){

 var newUrl:String = url
 if !( url.hasPrefix("http") ||  url.hasPrefix("https") ){

 let host = kGetHostName()
 newUrl = host + newUrl
}
do 
{
let videoData = NSData(contentsOf: URL(string: newUrl)!)
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
let path = URL(fileURLWithPath: documentsDirectory).appendingPathComponent("myMove.mp4")

if videoData == nil{
print("No data in this")
return
 }
 videoData?.write(toFile: path.absoluteString, atomically: true)
 let playeritem = AVPlayerItem(url: path)
 let player = AVPlayer(playerItem: playeritem)
 let controller = AVPlayerViewController()
 controller.player = player
 self.present(controller, animated: true) {
 player.play()
 }
 } catch {
  print(error)
  }

И при попытке с WKWebview

func loadWebView(url:String){

    var newUrl:String = url
    if !( url.hasPrefix("http") ||  url.hasPrefix("https") ){
        let host = kGetHostName()
        newUrl = host + newUrl
    }
     self.webView.load(URLRequest(url: URL(string: newUrl)!))
}

Оба случая терпят неудачу и получают это.Можно ли воспроизвести видео без изменения настроек plist, поскольку я хочу загрузить и воспроизвести?

1. Снимок экрана

Screen Shot

2. Снимок экрана

Screen Shot

...