티스토리 뷰

 Phonegap 하이브리드 앱에서 각각 플렛폼마다 mp3 의 스트리밍 플레이시 화면이 꺼지더라도 플레이가 계속 진행되게 하는 방법입니다.


IOS


 IOS 의 경우 우선  Resource -> plist 에 아래와 같이 Required background modes -> App plays audio or streams audio/video using AirPlay 를 추가하여 주도록합니다.



아래와 같은 옵션 추가 IOS 7 기준


그리고 Classes 에서 AppDelegate.m 파일에서 아래의 부분을 찾아서 수정해 주도록합니다.


- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{


위의 코드를 찾아서 아래와 같이 수정하여 주도록합니다.


- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    BOOL ok;
    NSError *setCategoryError = nil;
    ok = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];
    
    CGRect screenBounds = [[UIScreen mainScreen] bounds];

이제 프로그램에서 플레이어가 프로그램을 나갈때도 재대로 실행되는지 확인해보도록 합니다.




Android


Android 에서 앱을 나갈경우에도 플레이어가 플레이 되게 하는 방법입니다.


Android 프로젝트에서 src -> AppIdentifier -> AppName.java 에서 아래와 같이 코드를 추가 삽입 하여 주시기 바랍니다.




    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        // Set by  in config.xml
        super.loadUrl(Config.getStartUrl());
        // super.loadUrl("file:///android_asset/www/index.html")
    }


위의 코드를 아래와 같이 변경하여 주시면 됩니다.


    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        // Set by  in config.xml
        super.loadUrl(Config.getStartUrl());
        // super.loadUrl("file:///android_asset/www/index.html")
        super.setBooleanProperty("keepRunning", true);
    }

이제 앱이 에서 음악플레이 후 앱을 나가더라도 잘작동되는지 확인하여 보도록 합니다.


 몇가지 더 Phonegap 의 내부 음악 플레이어에 대해 설명드리자면 Phonegap 내부에 있는 플레이어는 스트리밍 플레이어가 아닌 일반 다운로드 플레이어 입니다. 따라서 파일을 받은 후 플레이가 되기 때문에 플레이 버튼을 누르더라도 내장 mp3 가 아닌 이상에 스트리밍이 되지 않습니다.(다운로드 후 플레이) 후에 패치가 되거나 스트리밍 모드가 생긴다면 모를까 일단은 javascript 로 만들어진 플레이어를 추천드립니다.

공유하기 링크
댓글