2016-06-24 3 views
4

I my UIViewController У меня есть выход к UIView, где я хотел бы показывать видео с помощью внешних ссылок. В этом случае я пытаюсь создать AVPlayerLayer и добавить его в мой UIView.Как добавить AVPlayer в UIView в ViewController

Мой код выглядит следующим образом:

class VievController: UICollectionViewController { 
    @IBOutlet weak var playerView: UIView! 

    override func viewDidLoad(){ 
      let playerItem = AVPlayerItem(URL: NSURL(string: ("https://www.youtube.com/watch?v=_yE_XgoWBso"))!) 
      let avPlayer = AVPlayer(playerItem: playerItem) 
      let playerLayer = AVPlayerLayer(player: avPlayer) 
      playerLayer.frame = playerView.bounds 
      playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
      playerView.layer.addSublayer(playerLayer) 
      avPlayer.play() 
    } 
}//end class 

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

ответ

0

К сожалению, вы не можете использовать AVPlayer для воспроизведения YouTube, Vimeo и т. Д. Для этого вам нужно будет использовать UIWebView.

1
let url = NSBundle.mainBundle().URLForResource("ding.mp3", withExtension: nil) 
    guard let newURL = url else { 
     print("Could not find file:") 
     return 
    } 
    do { 

     backgroundMusicPlayer = try AVAudioPlayer(contentsOfURL: newURL) 
     backgroundMusicPlayer.numberOfLoops = 0 
     backgroundMusicPlayer.prepareToPlay() 
     backgroundMusicPlayer.play() 

    } catch let error as NSError { 
     //print(error.description) 
    } 

Вы Jus нужно импортировать avfoundation рамки затем использовать этот код выше

+0

я спросил о загрузке видео с внешнего не связывает с расслоения – PiterPan

-1
Below code help you to solve the issue 

Adjust the frame according to your needs 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSError *setCategoryError = nil; 
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &setCategoryError]; 
    NSString *urlString=[NSString stringWithFormat:@"%@",@"http://www.youtube.com/watch?v=zPP6lXaL7KA&feature=youtube_gdata_player"]; 
    AVAsset *asset = [AVAsset assetWithURL:[NSURL urlWithString:urlString]]; 
    avPlayerItem = [[AVPlayerItem alloc]initWithAsset:asset]; 
    self.songPlayer = [AVPlayer playerWithPlayerItem:avPlayerItem]; 
    self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer: self.songPlayer]; 
    self.avPlayerLayer.frame = self.view.layer.bounds; 
    UIView *newView = [[UIView alloc] initWithFrame:self.view.bounds]; 
    [newView.layer addSublayer:avPlayerLayer]; 
    [self.view addSubview:newView]; 
    [ self.songPlayer play]; 
} 
+0

Ваш ответ * может * быть правильными, но вопрос конкретно спрашивает для ** Swift ** примеров кода, а не Objective-C. Пожалуйста, измените. Благодаря! – Moritz

Смежные вопросы