2011-10-20 2 views
9

간단한 HLS 플레이어로 재생을 제어하고 보조 모니터에 표시하려고합니다. 10.7에서 AVFoundation을 사용하여 재생을 제어하고 있습니다. 성공적으로 AVPlayerItem 및 AVPlayer를 만들 수 있지만 실제로 NSView 내에 표시 할 비디오를 가져 오는 데 문제가 있습니다.NSView에서 비디오를 표시하기 위해 AVPlayerLayer를 가져올 수 없습니다.

나는 코코아 초보자이며 iOS 개발에서 왔음을 고백해야한다. 그래서 나는 간단한 것을 놓치고 있을지 모른다. 그러나 나는 이것을 작동 시키려고 4-5 시간을 보냈고, 나는 실패했다.

AVPlayer에서 비디오를 재생하면 재생이 시작되고 오디오를들을 수 있습니다. 그러나 비디오가 나타나지 않습니다.

가능한 한 간단하게 만들려고했습니다.

AVPlayerLayer * playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; 
[playerLayer setFrame:self.view.bounds]; 
[self.view.layer addSublayer:playerLayer]; 

는 지금까지 내가 아는 한, 그것이 내가 할 일은이다 : 나는 그것의 뷰의 레이어에 AVPlayerLayer을 추가 NSViewController을 보유하고 있습니다. 그러나 비디오는보기 내에 나타나지 않습니다.

NSView에 AVPlayerLayer를 추가 한 사람이 있습니까? AVFoundation 문서는 UIView를 통해이 작업을 수행하는 방법을 보여 주며, NSView에서이 메서드를 사용해 보았습니다.

는 어떤 도움을 크게 감상 할 수있다!

답변

12

하위 레이어를 추가하기 전에 setWantLayer : YES를보기로 보내보십시오.

[self.view setWantsLayer:YES]; 
AVPlayerLayer * playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; 
[playerLayer setFrame:self.view.bounds]; 
[self.view.layer addSublayer:playerLayer]; 
+0

그게 전부입니다. AVFoundation 문서는 iOS에서 UIView를 하위 클래스 화하여이를 설정하는 방법을 보여줍니다. 그러나 NSView에는 layerClass가 없기 때문에 이것이 내 끝에서 작동하지 않는 이유 중 하나입니다. 그래서 다른 방법으로 하위 클래스를 만들고 setWantsLayer를 추가해야합니다. 그러면 효과가있는 것 같습니다. – kcharwood

+4

iOS에서 "wantslayer"속성/메소드가없는 것 같습니다. – zakdances

+1

iOS6에서의 의미입니다. – zakdances

관련 문제