[iPhone] 동영상 Play..

프로그래밍/iPhone/iPad 2010. 7. 7. 15:38 posted by 야매코더
간만에 글을 올림니다..
근 한달동안 너무 바빠서 정신이 없었어요.

오늘 갑자기 보스가 동영상 플래이 좀 해보자 해서 예전에 아이폰프로그래밍 공부하면서 구현한
샘플코드를 돌려 보았습니다..
이상하게 사운드만 나오고 동영상은 안나오더군요..뭔일인지.
즐겨찾는 맥부기 카페에도 검색해보고 구글링도 해본 결과..

iOS 4.0 으로 업글이 되면서 일부 클래스가 바뀌는 바람에 실행이 안되는 거였더군요..

바뀐부분을 비교하면

3.1시절에는 MPMoviePlayerController를 바로 선언해서 실행했는데..

3.2 이후 부터는 MPMoviePlayerViewController 를 먼저 불러오고 MPMoviePlayerController를 선언해서 사용하는 방식입니다.

코드로 비교를 해보면...

3.1 시절....

        MPMoviePlayerController* moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
       
        moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
       
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
       
        [moviePlayer play];
       
        [moviePlayer release];



3.2 이상....

        MPMoviePlayerViewController *playerView = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
        MPMoviePlayerController* moviePlayer = [playerView moviePlayer];
       
        playerView.view.backgroundColor = [UIColor blackColor];
               
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidFinish:)                         name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
       
        [self presentMoviePlayerViewControllerAnimated:playerView];
       
        [playerView release];




그럼 아이폰에서 동영상 플레이 하는 과정을 쉽게 설명 해 보겠습니다.



1. 프로젝트를 생성한다.

2. MediaPlayer.freamwork 를 추가 한다.

3. 해더파일에 추가된 프래임워크를 선언한다. 버튼과 함수도 선언한다.

4. 리소스에 대상 동영상을 추가 한다.

5. 실행할 버튼을 만든다. 선언한 btnPlay와 PlayMovie함수와 연결도 한다.

6. 버튼클릭시 실행하는 함수 코드를 추가 한다.
 
7. 동영상 종료시 돌아가는 콜백함수 만든다.

8. 컴파일&실행 한다.




참 쉽죠? 전 반나절이나 걸렸습니다. 소스는 첨부 하였습니다.


그럼 오늘은 여기까지~~~

To be continued -夜昧-


  1. Commented by 하수 at 2010.07.15 17:44

    이런 좋은글에 댓글 하나 없다니~

    많은 분들이 중요한 부분은 빼놓고 얘기하더군요.

    제대로된 정보를 올려주셔서 감사합니다.ㅎㅎ

    많은 도움이 되었습니다.

  2. Commented by 야매코더 at 2010.07.26 15:27 신고

    어이쿠..도움이 되셨다니 제가 더 다행입니다..
    감사합니다..^^

  3. Commented by 전감독 at 2010.09.10 03:28

    너무나 감사해요
    밤새면서 찾고 있었는데....하루 종일 힘든었던게 이제야 풀리네요
    캄솨!!!

  4. Commented by 전감독 at 2010.09.10 11:35

    질문있습니다. 시물레이터에서는 잘 돌아가는데 아이폰 기기에서는 왜 안되는걸까요?
    동영상 용량이 많아서 그런가요?
    아무리 시도해 보아도 어렵네요...알려주세요~~~

    • Commented by 야매코더 at 2010.09.17 16:14 신고

      글쎄요...
      다른 아이폰용 어플은 잘 심어지시나요?
      핼로월드라도 한개 만드셔서 올려보세요..
      아마 설정이나 프로비저닝이..잘못되어 있을듯 한데요.

  5. Commented by windy at 2010.09.13 23:32

    감사합니다... 너무나~~

  6. Commented by 젝키 at 2010.09.17 23:05

    아이폰 3.1.x용 시뮬레이터 에서 하면 Mpmovieplayerviewcontroller 가 선언되지 않았다고 나와서
    디버깅에서 막혀버리는데 ㅜㅜ;;;

    어떻게 해야하죠??

    아이폰 ios4용으로 하면 아주 잘됩니다만

    • Commented by 야매코더 at 2010.09.30 16:44 신고

      3.1용 이시라면..Mpmovieplayerviewcontroller
      에서 에러가 나겠네요.

      위쪽 코드로 작성을 하셔야 돌아갈텐데요.
      한 소스로 3.1과 그 이상 버전을 모두 적용하고 싶으신건가요? 그러려면 3.1대 api로 만드셔야 하는데 괜찮으시겠어요?

    • Commented by 야매코더 at 2010.09.30 16:47 신고

      개인적으론 4.0대 이하의 버전은 버리고 있습니다.
      어차피 업글하는데 돈드는것도 아닌데
      안하시는 유저분들은 해킹해서 사용하시는 분들이 거의 대부분일꺼라 판단해서요.

  7. Commented by 골드스네이크 at 2011.02.24 16:41

    저는 반나절을 샘플만 찾고 있었는데.. 대단하시네요
    소스 잘 활용 하겠습니다.
    감사합니다.

  8. Commented by 여인의향 at 2011.05.14 22:56

    감사합니다. 정말 많은 도움이 되었습니다.

  9. Commented by 철학자 at 2011.05.17 18:27

    너무나 감사해요 ~! 이런 도움들이 절 살립니다 ㅠ 님아 짱!

  10. Commented by 우왕 at 2012.03.21 04:42

    정보 감사합니다^^ 덕분에 쉽게 했어요~>_<

  11. Commented by 가카 at 2012.07.27 16:51

    대박 감사합니다. 엄청 고생하다가 이 글 보고 한번에 클리어 되었네요.

    정말 감사합니다. ^^