2013-03-05 3 views
4

앱이 실행되지 않는 경우 사용자에게 경고하기 위해 UILocalNotification을 사용하고 iPod 음악을 재생하려면 MPMusicPlayerController을, 라디오 스트림 URL을 재생하려면 MPMoviePlayerController을 사용합니다. 애플 문서에 따르면 iPhone에서 잠긴 화면에서 음악을 재생하는 방법

아이폰은 잠긴 장치가 로컬 통지를 수신하는 경우 다음 그것은 30초 사운드를 재생하며, 사용자가 다음 슬라이드를 슬라이드 할 때 그 전경 앱 걸릴 두 시나리오 놓고

  1. 걸릴

    -

    앱이 실행되지 않는 경우 다음 방법

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

  2. 앱이 이미 실행중인 경우, 메소드는 호출 호출

    (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notify

와 나는 이러한 방법으로 내 작업을 수행 할 수 있습니다.

문제점 : iPhone이 잠겨 있고 로컬 알림이 수신되고 앱이 실행 중일 때 내 사운드 (iPod 음악 또는 스트림 URL 일 수 있지만 로컬 알림 소리가 30 초 동안 재생되지 않음)를 재생하려면 응용 프로그램이 필요합니다. 전경.

참조 앱 : "알람 시계 HD"및 앱 스토어에서 사용할 수있는 다른 앱도 이러한 방식으로 정상적으로 작동하지만 앱이 백그라운드에서 실행 중일 때 알람을 재생할 수 없습니다 (이유를 이해하지 못함) ??? 주기적으로 조용한 음악을 재생하여 깊은 수면에서 아이폰을 방지하지만 어떻게 통지 그렇게받은 응용 프로그램을 통지

는 "실제 음악"을 연주하기 시작

:)

는 또한 how-to-prevent-iphone-from-deep-sleeping를 시도? 그리고 새로운 음악을 연주하는 방법?

+0

@DineshPatel 나는 오디오를 재생하기 위해 플레이어를 사용할 수 있다는 것을 알고 있지만 사용하고 있지만 문제는 화면이 잠겨있을 때 내 앱에 대한 제어권이 없다는 것입니다. 그러면 알림이 수신 된 앱에 알리는 방법 오디오 재생을 시작하십시오. – Archive

+0

안녕하세요 만주, 문제에 대한 해결책을 찾았습니까? 그렇다면, 제게 제안하십시오. 어떻게 할 수 있습니까? – Hindu

답변

2

오디오 세션에는 AVAudioSessionCategoryPlayback을 사용하십시오. 오디오 세션 프로그래밍 가이드 확인 here

+0

나는이 링크를 이미 보았지만 알림이 수신되었다는 것을 앱에 알리는 방법을 이해할 수 없어서 음악을 재생하기 시작했습니다. – Archive

+0

응용 프로그램을 호출하는 방법 (UIApplication *) : didReceiveLocalNotification : (UILocalNotification *)은 슬라이딩 슬라이더 – Archive

+0

잠긴 화면에서 음악을 재생하는 방법에 대한 질문을 생각 했습니까? – Sagrian

5

@manju 늦어서 죄송 합니다만 귀하를 위해 작동합니다.

selectedDate = [timePicker date]; 

선택한 날짜 개체는 현재 알림입니다.
[NSDate date] 이것으로 현재 시간을 찾을 수 있습니다. 를 통해 두 가지 다른 시간을 찾아보십시오.

NSTimeInterval timeDifference = [ selectedDate timeIntervalSinceDate:[NSDate date]]; 

이제 아르는 알림 다음이 코드

이이 문제를 해결할 수 app.infolist

UIApplication BackgroundMode 오디오 에 추가 깜빡하지 마십시오

UIApplication *app = [UIApplication sharedApplication]; 
UIBackgroundTaskIdentifier bgTask = 0; 

NSTimer *backgroundTimer = [NSTimer scheduledTimerWithTimeInterval:timeDifference target:self selector:@selector(backgroundTask) userInfo:nil repeats:NO]; 


    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
    [app endBackgroundTask:bgTask]; 
    }]; 

    -(void)backgroundTask 
    { 
     NSLog(@"Here you can play song via player "); 
     } 

을에 .write 예약 할 때, 장치가 잠길 때 노래를 재생합니다.

+0

- (void) backgroundTask when called 배경에서도 알림이 수신되었지만 백그라운드에서 재생되지 않고 전경에서 오디오 재생을 시작하는 AVAudioplayer를 사용하여 오디오를 재생하도록 코드를 작성했습니다. 나는 이미 "필요한 배경 모드"를 plist에서 "오디오 재생"으로 설정했습니다. – Archive

+0

내 코드 - (void) backgroundTask { NSLog (@ "여기서는 플레이어를 통해 노래를 재생할 수 있습니다."); NSURL * audioFileLocationURL = [[NSBundle mainBundle] URLForResource : @ "HeadspinLong"withExtension : @ "caf"]; NSError * error = nil; delegate.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL : audioFileLocationURL 오류 : & 오류]; [delegate.audioPlayer setNumberOfLoops : -1]; [delegate.audioPlayer prepareToPlay]; [delegate.audioPlayer play]; } 포 그라운드에서는 오디오뿐만 아니라 로그를 출력하지만 백그라운드에서 로그 만 표시하고 오디오는 재생하지 않습니다. – Archive

+0

안녕 Dinesh, manju와 같은 문제가 있는데 로그 인쇄가 있지만 백그라운드에서 음악이 시작되지 않습니다. – Hindu

관련 문제