【问题标题】:Control iPod from another app?从另一个应用程序控制 iPod?
【发布时间】:2011-06-13 14:35:49
【问题描述】:

我查看了 Apple 的 AddMusic 示例代码,但这并不是我想要的。我正在尝试找到一种方法来开始/停止在 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];
}

【问题讨论】:

  • +1 用于 ASCII 艺术!
  • 我已经构建了这个应用程序。但一直没有完成。使用 bonjour 与第一个应用程序等进行对话...伟大的思想...

标签: iphone objective-c media-player ipod


【解决方案1】:

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

请务必花时间阅读文档并注意提及的有关家庭共享的注意事项。您还需要注册以接收可能在您无法控制的情况下发生的播放器状态更改通知。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-07
    • 2015-02-03
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多