2011-06-13 1 views
9

나는 애플의 AddMusic 샘플 코드를 살펴 봤지만, 그게 내가 원하는 것은 아니다. 내 앱의 샌드 박스에 포함 된 내용을 제어하지 않고 iPod 앱에서 음악 재생을 시작/중지하는 방법을 찾으려고합니다.다른 앱에서 iPod을 제어 하시겠습니까?

이런 식으로 뭔가 ...

____________ 
|   | 
| |< || >| | skip back, play/pause, skip forward 
|   | 
| XXXXXXXX | album art 
| XXXXXXXX | 
| XXXXXXXX | 
| XXXXXXXX | 
|   | 
|____________| 

은 물론 응용 프로그램이보다 더 복잡하지만 지금은 내가 직접 제어 가정 에 집중하고 싶어요.
보너스는 cheating없이 참조를받는 사람을 가리 킵니다.


- 아트 워크로드 오류가 a new question (으)로 변경되었습니다.

- 텍스트 음성 변환 구현을 a new question으로 옮겼습니다.

- 노래가 시작되면 진행률 표시 줄이 100 %로 채워집니다. 이 코드의 작동 방식 :

// your must register for notifications to use them 
- (void)handleNowPlayingItemChanged:(id)notification { 
    … 
    // this is what I forgot to do 
    NSNumber *duration = [item valueForProperty:MPMediaItemPropertyPlaybackDuration]; 
    float totalTime = [duration floatValue]; 
    progressSlider.maximumValue = totalTime; 
… 
} 

// called on a one-second repeating timer 
- (void)updateSlider { 
    progressSlider.value = musicPlayer.currentPlaybackTime; 
    [progressSlider setValue:musicPlayer.currentPlaybackTime animated:YES]; 
} 
+4

+1 ASCII 아트 사용시 +1! –

+0

나는이 앱을 이미 만들었습니다. 그러나 결코 그것을 끝내지 않았다. bonjour를 사용하여 첫 번째 앱 등과 대화 ... 훌륭한 마음 ... –

답변

4

MediaPlayer framework입니다. useful guide이 있으며 여기에는 MediaPlayer API 개요에 대한 링크가 포함되어 있습니다.

특히, 당신은 MPMusicPlayerController을 찾고 있습니다. 앱은 전용 앱 미디어 플레이어 또는 원하는 것으로 보이는 iPod 미디어 플레이어를 제어 할 수 있습니다.

@implementation MyPlaybackController 

- (id)initWithNibName:(NSString *)nibName bundle:(id)bundleOrNil 
{ 
    if ((self = [super initWithNibName:nibName bundle:bundleOrNil])) { 
    self.musicPlayer = [MPMusicPlayerController iPodMusicPlayer]; 
    } 
    return self; 
} 

- (IBAction)skipForward:(id)sender 
{ 
    [self.musicPlayer skipToNextItem]; 
} 

- (IBAction)skipBack:(id)sender 
{ 
    [self.musicPlayer skipToPreviousItem]; 
} 

- (IBAction)togglePlayback:(id)sender 
{ 
    if (self.musicPlayer.playbackState == MPMusicPlaybackStatePlaying) { 
    [self.musicPlayer pause]; 
    } else { 
    [self.musicPlayer play]; 
    } 
} 

@end 

이 문서화를 읽고 홈 공유와 관련하여 언급 된주의 사항을주의 깊게 살펴 시간이 걸릴 마십시오

간단한 예 (생략 헤더) 같은 것이다. 또한 컨트롤 외부에서 발생할 수있는 플레이어 상태의 변경 사항에 대한 알림을 등록하려고합니다.