问题标签 [mpmusicplayercontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
800 浏览

iphone - iPodMusicPlayer 不发送通知,如果它是在后台创建的

如果 iPodMusicPlayer 是在后台创建的,那么我不会发送有关播放状态更改的通知。

这是代码:

有什么方法可以在后台创建 iPodMusicPlayer?否则,如果它是在主线程上创建的,它会阻塞执行一段时间。

0 投票
1 回答
1272 浏览

iphone - 帮我选择合适的 iPhone 音频类 - MPMoviePlayer vs AVAudioPlayer vs MPMusicPlayer

有谁知道关于 MPMoviePlayer 与 AVAudioPlayer 与 MPMusicPlayer 之间区别的好教程?

我想播放来自外部 URL 的 mp3 文件的音频。

理想情况下,它在类似 iPod 的音频视图中播放。我玩弄了 MPMoviePlayer,但它似乎更适合视频,因为当音频开始显示“电影播放”消息时,控件消失并显示白色快速启动页面。

我希望标准的 ipod 音频控件一直显示,并自定义它们背后的图像。

0 投票
2 回答
4526 浏览

ios4 - 在 iOS 4 上使用 MPMusicPlayerController 支持后台音频和远程控制。这甚至可能吗?

我在这上面花了两天时间,却一无所获。我正在尝试使用 [MPMusicPlayerController applicationMusicPlayer] 播放从用户的 iPod 库中选择的音频并让它在后台运行并支持远程事件。现在让音乐真正播放是很容易的部分。获取实例,选择歌曲,分配音乐队列并播放。做完了。但是...a)我无法让它在后台播放,b)即使在前台我也无法让远程控制事件工作!

在你问之前,是的,我已经设置了 plist 条目、音频会话类别、说我有兴趣获取远程事件的电话并设置了第一响应者来监听它们,所以请知道,是的,我已经阅读了我能找到的关于该主题的每一个文档*(*我责怪 Apple 的一项任务,因为它在这个主题上一点也不清晰,也没有任何示例代码!)我看过每一篇与它相关的 WWDC 视频(甚至冻结屏幕以完全从他们的示例中复制代码......)所以除非我错过了不在此列表中的内容,否则回复任何这些答案都无济于事。

还有一件事......我明确谈论使用 MPMusicPlayerController 根据文档,它从不使用应用程序会话。它总是使用系统会话。(也许这本身就回答了我的问题,但文档并没有明确说明,所以我不确定,因此这个问题。)

也就是说,两天后,我的想法是这样的:

  1. 使用 MPMusicPlayerController 时,无论您调用什么方法或设置什么 plist 条目,您的应用都不会在后台运行。时期。如果您使用 ipodMusicPlayer 实例,音乐会继续播放,但那是因为播放的是 iPod,而不是您的应用程序。如果您改用 applicationMusicPlayer 实例,则在进入后台时,您的音乐将停止。在这两种情况下,您的应用都会被暂停。

  2. 无论您使用 ipodMusicPlayer 或 applicationMusicPlayer 实例,所有远程事件都会转到 iPod 应用程序本身,而不是您的,即使您已明确要求它们。如果您正在使用 applicationMusicPlayer 实例并且您使用遥控器选择“播放”,则 iPod 应用程序会收到该命令,因此您的音频会消失并被中断,并在 iPod 应用程序中开始播放。如果您选择了 ipodMusicPlayer,那么当然没关系,因为您已经明确表示您基本上只是对远程控制 iPod 应用程序感兴趣,这又是实际接收远程事件的内容。

  3. 底部快速切换控件中的图标永远不会更改为您的应用程序的图标,因为您的应用程序从未真正设置为接收事件。iPod 应用程序是,这就是它的图标确实出现在那里的原因。

所以我想知道的是……我错了吗?有没有人成功使用 MPMusicPlayerController 并能够拦截远程事件?虽然我更喜欢使用带有背景音乐支持的 applicationMusicPlayer,所以我不会使用用户的 iPod,但更重要的是远程控制通知,这意味着如果我必须使用 ipodMusicControl 并将我的应用程序保持在前台以拦截那些消息,就这样吧。那样很难看,但至少它是一些东西。

非常感谢代码示例或至少针对内置应用程序模板之一的明确步骤。(甚至不需要实施......只是步骤。希望这将安抚人们不断回答问题的不可避免的“它仍在 NDA 之下”的事情。)

标记

0 投票
3 回答
13727 浏览

iphone - iOS 4 中如何在后台启用 iPod 控件来控制非 iPod 音乐?

我正在尝试完成的一个很好的例子是在最新版本的Spotify iPhone 应用程序中实现(Pandora 似乎具有相同的功能)。

当 Spotify 在后台时,双击打开“多任务坞站”,其中 ipod 控件(播放/暂停、前进等)允许控制 Spotify 的音乐播放(而不是 ipod 应用程序)。此外,当 iphone/ipod touch 锁定时,双击会显示类似的播放控件。

如果你不明白我的意思,这里有一篇有截图的文章:http : //www.wired.com/gadgetlab/2010/07/spotify-updated-for-ios4-ready-to-replace-ipod/

在我当前的应用程序中,音乐是从服务器流式传输的(使用 Matt Gallagher 的 AudioStreamer)。我设法让音乐在后台播放。现在,我想将我的播放链接到“多任务停靠”/锁定屏幕。

我应该使用[MPMusicPlayerController iPodMusicPlayer]吗?我应该如何进行?

额外的问题:如果你能告诉我如何将 ipod 图标更改为我在“多任务坞站”中的应用程序图标(Spotify 也采用了这个技巧......),那就太棒了。

任何帮助表示赞赏,谢谢。

0 投票
2 回答
831 浏览

iphone - iTunes 同步后 MPMusicPlayerController 停止工作

我知道有一个类似的问题MPMusicPlayerController 停止发送通知,但该问题的答案并不能解决这个问题。

我使用的是 iOS 4,这发生在支持多任务处理的设备和非多任务处理设备上。我在 iPhone 4、iPhone 3GS、iPod touch 2G 和 iPod touch 1G 上进行了测试。

我有一个项目只是为了测试这个问题。它使用 MPMusicPlayerController 来控制 iPod 音乐播放,并在 nowPlaying 项目更改时收到通知,因此它可以更新艺术品、艺术家和标题。当你第一次启动它时它工作正常。但是,如果您执行 iTunes 同步,我相信这会退出设备上的 iPod.app,并返回到我的应用程序,该应用程序将不再从 MPMusicPlayerController 获得通知,因此它不会更新“正在播放的项目”显示。

该项目还允许您从 iPod 库中选择一个播放列表来开始播放。同步后它也会停止工作。它仍然可以获得播放列表的列表,但尝试在 iPod 音乐播放器中将它们排队并没有任何作用。

释放 MPMusicPlayerController 的旧实例不起作用。取消注册和重新注册通知不起作用。应用程序和 iPod.app 之间的 IPC 似乎有问题。修复它的唯一方法是杀死我的应用程序并重新启动它。

还有其他人有这个问题吗?

0 投票
2 回答
3465 浏览

iphone - Iphone sdk 支持通过网络播放 mp3 文件

我正在编写一个应用程序来联系在桌面上运行的网络服务器以访问和播放 mp3 文件。到目前为止,这是我尝试过的:我使用 MPMusicPlayerController(并尝试过 UIWebview)来处理音频文件,并在逐步下载文件后自动播放。无法处理跳过歌曲并在渐进式下载文件后播放不是蜂窝网络的好解决方案。

理想情况下,我希望具有以下功能 1. 客户端请求使用特定比特率创建流(以处理不同的网络条件) 2. 客户端应该能够跳过歌曲

谁能指出我正确的方向?m3u8 文件可以支持这些功能吗?

感谢您提前提供任何帮助。

0 投票
1 回答
3123 浏览

iphone - 带有 MPMusicPlayer 的 iPhone 应用程序后台

我正在开发一个 iPhone iOS4 应用程序,该应用程序包含播放用户 iPod 库中的音乐。我还想跟踪播放了哪些歌曲,并能够随机更改歌曲,即使在后台也是如此。所以我设置音乐播放器使用:

现在,我希望这个应用程序继续在后台运行和播放音乐,所以我设置了:

我遇到的问题是我的应用程序在移动到后台时失去控制(当调用 applicationDidEnterBackground 时,即在应用程序开关上)。由于我使用的是 iPodMusicPlayer,音乐继续播放,但我的应用程序无法控制,因此无法跟踪或更改歌曲。

现在,Apple 文档声明您的应用程序应该使用这个必需的后台模式标签继续在后台执行,但我的没有。是因为我使用的是 MPMusicPlayer 吗?有没有办法绕过它?有任何想法吗?

PS。我还试图让远程锁定和多任务 iPod 控制器与我的应用程序一起工作。我正在使用下面的代码,但 remoteControlReceivedWithEvent 永远不会被调用!它可以与 MPMusicPlayer 一起使用吗?我只用 AVAudioPlayer 看过它。

0 投票
3 回答
4529 浏览

core-audio - 音频会话“闪避”在 iOS 4 中中断...?

我有一个应用程序,它使用 MPAudioPlayerController 访问 iPod 音乐库,以及一个 AVAudioPlayer 将音频覆盖在音乐之上。我已将此文档用作指南。具体来说:

最后,您可以增强类别以在播放音频时自动降低其他音频的音量。例如,这可以在锻炼应用程序中使用。假设当您的应用程序想要覆盖口头消息时,用户正在使用他们的 iPod 进行锻炼——例如,“您已经划船 10 分钟”。为确保来自应用程序的消息可理解,请将 kAudioSessionProperty_OtherMixableAudioShouldDuck 属性应用于音频会话。发生闪避时,设备上的所有其他音频(除了电话音频)的音量都会降低。

但我没有看到这种行为。事实上,我看到(或听到)是,如果我设置 AudioSession 并将 kAudioSessionProperty_OtherMixableAudioShouldDuck 设置为 true,MPAudioPlayerController 初始音量会降低,如果我随后在 MPAudioPlayerController 上调用暂停(然后再次播放)音量级别提高到“正常”水平。播放 AVAudioPlayer 对音频电平没有任何影响...

所以我设置了一个简单的测试用例来重现这个。

在 ViewController 标头中:

并在实施中:

我已经连接了几个 UIButtons。一个用于musicAction(用于播放/暂停MPMusicPlayerController),一个用于soundAction(用于播放/暂停AVAudioPlayer)。

如前所述,如果我点击 musicAction 按钮,音乐会播放,但音量会降低,如果我点击 soundAction 按钮,则覆盖播放,但不会影响 MPMusicPlayerController 的音量。而且,更类似于错误的是,当我暂停然后播放 MPMusicPlayerController 时,音乐的音量会增加到我没有设置 AudioSession 时的水平。

我很想知道是否有其他人有过这种经历,如果有的话,如果你找到了解决方法(或者可以告诉我我做错了什么)。否则,我想我要去雷达了。

非常感谢,

列维

0 投票
1 回答
1301 浏览

iphone - 一起播放 iPod 音乐和 avaudioplayer

我正在尝试编写一个应用程序,用户可以在其中录制声音并使用音乐库中的背景音乐收听相同的声音。但是,当我尝试使用 AVAudioplayer 播放录制的文件时,背景音乐(iPod 播放器)非常低且听不见。是否需要设置任何会话属性才能在同一级别播放 AVAudioPlayer 和 iPod 播放器?我试图放置 allowMixing 属性但没有成功..

0 投票
1 回答
1049 浏览

iphone - 更改 MPMediaPickerController 导航栏的颜色,可以吗?

我有一个 MPMediaPickerController 可以让用户在我的应用程序中选择他/她自己的歌曲。问题是我的应用程序有一个“黑色”导航栏,选择器是标准的蓝色。现在我知道不允许/不可能对选择器进行子类化,但是还有其他方法可以将导航栏更改为“黑色”吗?