2016-06-28 3 views
3

Я пытаюсь установить вставлять видеоплеер используя Swift. Когда я запускаю приложение, я вижу видеоплеер, но видео не воспроизводится. Не могли бы вы проверить любой недостающий пункт, пожалуйста? Заранее спасибо.Встраиваемый AVPlayer не воспроизводится видео

var playerItem: AVPlayerItem? 
var player: AVPlayer? 

if let videoLink = newLaunch.videoLinks where newLaunch.videoLinks!.count > 0{ 

    let videoUrl = videoLink[0] 
    let streamingURL: NSURL = NSURL(fileURLWithPath: videoUrl) 
    player = AVPlayer(URL: streamingURL) 
    let playerController = AVPlayerViewController() 
    playerController.player = player 
    self.addChildViewController(playerController) 
    self.videoContainerView.addSubview(playerController.view) 
    playerController.view.frame = self.videoContainerView.bounds 
    player!.play() 
} 

enter image description here

+0

Вы можете проверить this-> вместо добавления PlayerController, как childcontroller .. присутствует/толкать его. Сейчас работает ?. Если да, то по крайней мере мы узнаем, что .. это связано с добавлением childviewcontroller в противном случае, есть и другая проблема с AVPlayer. –

+0

@Mehul, я так думаю. Я это попробую. –

+0

Кроме того, проверьте, отладка, что fileurlpath, который вы использовали, является правильным или нет. Иногда путь с использованием fileurlpath делает проблему, поэтому попробуйте другой путь –

ответ

0

Я думаю, что нет никакого способа отличить от UIWebView, чтобы воспроизводить видео YouTube в приложении iOS. Также вы можете перенаправить приложение YouTube, передав свой URL-адрес видео. Приложение youtube будет обрабатывать остальную часть вещей.

Вы можете ознакомиться с правилами раздела YouTube 2 пункта 10: https://developers.google.com/youtube/terms?hl=en

Вы можете использовать YouTube Player: https://developers.google.com/youtube/v3/guides/ios_youtube_helper#installation

0

Какую версию IOS вы используете? похоже, что это может быть связано с новым продуктом Apple transport layer security enhancements.

Вам необходимо включить приложение, чтобы разрешить потоковое видео из этого конкретного домена. Вы можете альтернативно обходить безопасность транспортного уровня во время разработки вашего приложения.

Заканчивать эту тему о том, как это сделать: https://stackoverflow.com/a/36305505/5229157

Также, вы можете захотеть использовать другой конструктор URL-адрес для потоковой передачи файла:

let videoUrl = videoLink[0] 
let streamingURL = NSURL(string: videoUrl) //- assuming videoLink is of type [String] 
player = AVPlayer(URL: streamingURL) 

Редактировать:

Протестируйте приведенный ниже код:

let videoUrl = videoLink[0] 
let streamingURL = NSURL(string: videoUrl) 
let playerController = AVPlayerViewController() 
playerController.player = AVPlayer(URL: streamingURL) 
self.presentViewController(playerController, animated: true) { 
    self.playerController.player?.play() 
} 
+0

Я использую iOS 8.1. В info.plist я устанавливаю «Разрешить произвольные нагрузки = ДА». И я попытался использовать NSURL (string: videoUrl), но результат такой же. Видео по-прежнему не воспроизводится. –

+0

Я отредактировал свой ответ, попробуйте этот подход с вашего контроллера. Надеюсь, поможет! –

+0

Спасибо за вашу помощь, все еще не играя видео. –

2

Наконец, я использовал Swift Youtube Player встраивать видео. Он очень прост в использовании.

+0

здорово, что вы сделали !!!!!!! –

-1

вы можете добавить AVPlayer в качестве слоя на взгляд:

player = [[AVPlayer alloc] init.... 

playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; 
CGSize size = self.view.bounds.size; 
float x = size.width/2.0-187.0; 
float y = size.height/2.0 - 125.0; 

playerLayer.frame = CGRectMake(x, y, 474, 320); 
[playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill]; 
[self.view.layer addSublayer:playerLayer]; 
[player play];