2014-10-13 5 views
0

음악 플레이어 컨트롤이 포함 된 샘플 iOS 8 오늘 위젯을 구현하려고합니다.이 앱은 배경 오디오가 활성화 된 기본 음악 앱입니다.iOS 8의 음악 플레이어 컨트롤 오늘 위젯

앱을 포함하는 알림 방법을 찾기 위해 주변을 둘러 보았지만 아무 것도 찾지 못했습니다.

시나리오는 기본적으로 앱이 일시 중지 상태이며 선택한 노래/앨범 (특정 노래에서 일시 중지되었을 수 있음)에있는 경우 재생/중지/다음 버튼이있는 위젯에 이름을 표시해야합니다. 등

애플의 문서 및 사용 시나리오를 설명하는이 문서를 바탕으로 : https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensibilityPG.pdf

그것은 확장이 같은 지원되지 않는 경우와 같은 긴 실행 및 진술 특별히 오디오 재생을 처리 할 것을 언급 확장 프로그램 외부에서 실행해야합니다. 그런 시나리오에서 앱을 포함하는 방아쇠를 방아쇠를 당기는 방법은 언급하지 않았다. 방금 큰 파일 다운로드 및 웨이크 업 앱을 처리 할 수있는 NSURLSession 기술이 handleEventsForBackgroundUrlSession을 호출하고 App-Group 공유 기능은 앱과 확장을 모두 포함 할 수있다. 공유 데이터 컨테이너에 액세스하십시오. 명시된 유일한 실현 가능한 솔루션은 강제로 전체 앱을 포 그라운드로 가져올 수있는 openURL 솔루션입니다.

내 데모 용으로 하나의 App-Group을 설정하고 app 및 extension을 각각 포함하는 addObserver/postNotificationName을 호출하여 맞춤 알림을 사용하여 NSNotificationCenter의 호출을 시도했지만 전혀 작동하지 않았습니다. 나는 심지어 App-Group의 NSUserDefaults를 변경하려고 시도했지만, 앱의 배경도 포함하고 있지 않습니다. 여기

관련 될 수있는 몇 가지 질문입니다,하지만 난 그것에 대한 답 찾을 수 없습니다 : ( Sharing data between app extension and conainer app) --- ( NSUserDefaultsDidChangeNotification not sent when app resumes from the background) --- ( Set notifications from Today Extension Widget)

내가 생각을 하지만, 방금 확장 기능 자체의 모든 컨트롤을 포함하여 비슷한 기능을 갖춘 위젯을 추가 한 TapTunes라는 앱을 발견했습니다.

감사합니다.

답변

0

질문은, 일부 맞춤형 오디오를 재생 하시겠습니까, 아니면 iOS 뮤직 플레이어에서 트랙을 재생 하시겠습니까?

TapTunes가 표준 음악 플레이어를 사용하는 것처럼 보입니다. 나는이를 사용하여 수행 할 수 있다고 생각 MPMusicPlayerController (https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/)

오디오 사용자 정의 재생하려면, 일반적으로는 (여기 참조 : http://www.raywenderlich.com/29948/backgrounding-for-ios)를 활성화 특별한 오디오 백그라운드 모드를 가지고 있고, 지속적으로 공급하기 위해 호출되는 콜백이 새로운 오디오 데이터, 예. 인터넷에서 오는. 어쩌면 당신은 현재 작업 ("다음 트랙", "이전 트랙"등)을 알려주는 콜백의 NSUserDefault 키를 관찰 할 수 있습니다. 나는 행동이 실제로 수행 될 때까지 이것들이 약간의 지연을 가져올 수 있다고 생각한다.

어쨌든 App Store에서 위젯이 거부되면 놀랄 필요가 없습니다. 최근에 "빠른 정보 표시"개념을 따르지 않는 위젯에 대해서는 매우주의해야합니다. TapTunes가 승인되었다고해서 앱이 승인 될 것이라는 의미는 아닙니다.