2015-01-16 5 views
1

클라이언트가 화면의 뷰에 비디오를 표시하려고합니다. 이 코드는 MPMoviePlayerController를 만들고 그것의 서브 뷰는 문서가 할 말처럼, 컨테이너 뷰의대로 뷰의 설치 : 내가 크기를 조정하도록 설정 컨테이너보기를MPMoviePlayerController의 뷰가 전체 화면이 아닐 때 크기를 조정하는 방법

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: myVideoURL]; 
    [moviePlayer prepareToPlay]; 
    [moviePlayer.view setFrame: _videoPlaybackContainerView.bounds]; 

    moviePlayer.controlStyle = MPMovieControlStyleNone; 
    [_videoPlaybackContainerView addSubview: moviePlayer.view]; 

를보기 컨트롤러의 내용보기 때문에 크기를 조정하는 경우 자동 회전.

동영상 재생 중에 기기를 돌리면 컨테이너보기의 크기가 조정되지만 동영상에는 표시되지 않는 것을 볼 수 있습니다. 클리핑되고 뷰를 중앙에 배치하지 않습니다.

플레이어 뷰에서 크기 조정 마스크를 설정하려고 할 수도 있지만 (이 프로젝트에서는 AutoLayout을 사용하지 않습니다) 문서가 다음과 같이 말합니다. 플레이어의 시야를 불투명 한 구조로 취급하십시오. 크기를 변경 한 마스크가 손상되면 그 마스크를 위반하는지 여부는 확실하지 않습니다.

그물에 대한 도움을 많이 찾았지만 다른 모든 토론은 영화 플레이어보기 CONTROLLER (다른 동물) 또는 전체 화면 표시로 처리 할 수 ​​있습니다.

+0

명확하게 이해할 수 있는지 잘 모르겠지만'moviePlayer! .scalingMode = MPMovieScalingMode.Fill'을 시도 했습니까? – gabbler

+0

@ gabbler, 알아 냈습니다. 아래 내 대답을 참조하십시오. –

+0

예, 좋은 해결책이 몇 일 전에 보았습니다. – gabbler

답변

2

해결했습니다.

내가 화면에 맞게 채우기 모드 설정 : 내보기 컨트롤러에 didRotateFromInterfaceOrientation 전화를받을 때 다음

moviePlayer.scalingMode = MPMovieScalingModeAspectFit

을, 내 컨테이너 뷰의 크기를 조정하고 단지의 프레임을 변경 무비 플레이어의 시각.

내 비디오 컨테이너보기를 정확하게 가로 세로 비율을 유지하는 가장 큰 크기로 크기를 조정하려면 상당히 쓸데없는 계산을해야했습니다. 우리가 AutoLayout을 사용했다면 그것은 아마 간단했을 것입니다.

+0

회전 기능에서 크기 조정 코드를 공유 하시겠습니까? – kris