문제

웹에 대한 비디오 컨텐츠가 플래시 형식으로있는 클라이언트가 있습니다. 내 임무는 iPhone 앱에서 비디오를 보여주는 것입니다.

1 단계는이 비디오를 iPhone에 적합한 QuickTime 형식으로 가져 오는 것임을 알고 있습니다.

그런 다음 클라이언트가 이러한 파일을 어떻게 또는 어디에서 호스팅하는지 알아 내도록 도와야합니다. 그것이 까다로워지면 YouTube에서 호스팅 될 수 있다고 생각합니다.

그러나 저의 주요 관심사는 비디오를 스트리밍하는 방법입니다. mpmovieplayercontroller의 장단점은 무엇입니까? 차이가 있습니까? 그들 중 하나가 다소 용서하고 있습니까? 그들 중 하나가 더 나은 사용자 경험입니까? 내가 기대할 수있는 gotchas?

iPhone에서 비디오를 재생하는 것이 매우 쉽다고 가정합니다. 둘 다 시도하고 폴백으로 사용할 수있는 것이 합리적입니까, 아니면 시간 낭비일까요? 나는 이것을 조금 일정하려고 노력하고 있기 때문에 이것을 한 사람의 실제 경험을 듣고 싶습니다.

도움이 되었습니까?

해결책

UIWebView는 실제로 비디오를 재생할 수 없습니다. UIWebView를 사용하여 YouTube 페이지로 이동하면 iPhone의 YouTube 앱을 시작합니다. 이 작업을 수행하면 비디오가 재생 된 후 특정 방식으로 제어가 앱으로 돌아갑니다. 여기를 봐: http://iphoneincubator.com/blog/tag/uiwebview

간단한 스트리밍 만 수행하는 한 MPMoviePlayer 컨트롤러를 사용하는 것이 좋습니다. 시작할 수있는 샘플 코드는 다음과 같습니다.

NSString *url = @"http://www.example.com/path/to/movie.mp4";
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc]
                                        initWithContentURL:[NSURL URLWithString:url]];
[moviePlayer play];

다른 팁


편집 :이 답변의 원래 예는 Cgrectzero의 프레임으로 웹 뷰를 초기화했습니다. 이것은 iOS 3.2까지 작동했습니다. iOS 4로 시작하여 WebView에는 0이 아닌 프레임이 있거나 비디오가 재생되지 않아야합니다. 이 변경 사항을 반영하기 위해 아래 예제를 편집했습니다.


여기서 허용 된 답변은 정확하지 않습니다. 실제로 UIWebView를 사용하여 비디오를 스트리밍 할 수 있으며 어떤면에서는 MPMoviePlayerController보다 낫습니다. loadRequest를 통해 비디오 파일 (예 : MP4)을 요청하도록 UIWebView에게 알려 주면 새 창을 열고 앱 내에서 비디오를 스트리밍합니다. mpmovieplayercontroller와 달리 Uiwebview에서 만든 비디오 창은 풍경 또는 초상화 방향으로 회전 할 수 있습니다. 비디오가 종료되면 사용자는이 창을 닫고 앱으로 돌아갈 수 있습니다.


편집 2 : 이제 mpmovieplayerviewcontroller를 사용하여 회전하는 비디오 플레이어를 구현할 수 있으므로 더 이상이 답변에 설명 된 기술을 사용하여 비디오에 uiwebview를 사용해야 할 이유를 생각할 수 없습니다.


힌트 : UIWebView는 비디오를 재생하기 위해 자체 창을 만들기 때문에 View Hierarchy에 UIWebView를 추가 할 필요조차 없습니다. UIWebView 객체를 만들고 loadRequest를 호출 할 수 있습니다.

self.webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
NSURL *url = [NSURL URLWithString:@"http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top