본문 바로가기

Apple - IPhone / IPod Touch

091113 일지 - MPMediaPlayer 의 버그 때문에 삽질?


iPod 에 내장된 음악을 플레이 하기 위해서 사용되는
MPMediaPlayer 프레임워크.

하지만, 이 프레임웍에는 치명적인 문제가 숨겨져 있었다.

그것은 슬립모드로 빠지지 않게 도와주는 코드인

[[ UIApplication sharedApplication ]
setIdleTimerDisabled: YES ];

이 슬립 문제..


모든 아이폰 어플리케이션에서 위 의 코드인 [[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];
코드를 입력하게 되면 자동으로 슬립모드로 빠지지 않도록 지원해주는데,
MPMediaPlayer 를 사용하게 되면 이 코드가 무용지물이 된다.

일종의 버그인 샘.

애플에 직접 메일을 보내서 문의해 보았다. 아래는 내가 보낸 메일.

Hi. dts.

My application is disabling auto-lock timer using this code

[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];

All works as expected, but when i use MPMusicPlayerController to play iPod
music the application is locked.

It seems like if MPMusicPlayerController deactivates previous code...

Could anyone give me a solution for this?

Thanks

-------------------------------

그리고 아래는 dts 에게 받은 메일이다.

Hi Jung Soo Nam,

Thank you for your inquiry to Apple Worldwide Developer Technical Support.

Unfortunately, this is a known problem that is being looked into by iPhone
engineering.  Any attempt to reset setIdleTimeDisabled (to YES) after calling
MPMusicPlayerController:play does not "stick", so it can't be worked-around
in that fashion.

The only suggestion I can offer is to use a different framework to play back audio,
such as Core Audio, however a different framework will not be able to access the
device iPod music library in the way that MPMusicControllerPlayer can.

Daniel Yu
DTS Engineer, Apple Worldwide Developer Relations




--------------------------------------

결국 이 문제는 애플에서도 이미 인지하고 있는 문제이고, 이 문제를 해결할 방법은 현재로써는
다른 프레임웍을 사용해야 한다는 것.

하지만, 다른 프레임웍에서는 iPod 음악에 접근할 수 없다는 것.

결론은 iPod 음악에 접근한 상태에서는 언제나 슬립 모드에 빠질 수 밖에 없다는 것이다.
(사용자가 iPod 설정에 들어가서 슬립모드를 아예 해제하지 않는 한)



휴.. 이것때문에 버린 하루라는 시간이 너무 아깝게 느껴진다.. 제길....