当前位置: 首页 > 知识库问答 >
问题:

iOS-在多任务栏中更新媒体播放/暂停状态

楚钊
2023-03-14

我们有一个使用AU graph - CoreAudio API的工作应用程序来播放音频。图形始终在运行,各种源素材的播放/暂停状态在图形渲染回调函数中管理。我们成功地响应了UIEventTypeRemoteControl事件,并使用MPNowPlayingInfoCenter使用当前播放内容的元数据成功地更新了锁定屏幕。

缺少的一点是更新iOS多任务处理栏中播放/暂停按钮的状态。它始终处于“暂停”(||)模式,即使应用程序音频已经暂停。它从不切换到“播放”(

哪个API用于更新播放/暂停按钮状态?

共有2个答案

古凌
2023-03-14

更改MPNowPlayingInfo字典,设置新参数

MPNowPlayingInfoPropertyPlaybackRate to 1.0f to show pause button

MPNowPlayingInfoPropertyPlaybackRate to 0.0f to show play button

从播放按钮到暂停按钮

Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if(playingInfoCenter) {       
    NSMutableDictionary *songInfo = [NSMutableDictionary dictionaryWithDictionary:[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo];
    //[songInfo setObject:songTitle forKey:MPMediaItemPropertyTitle];
    //[songInfo setObject:songArtist forKey:MPMediaItemPropertyArtist];
    [songInfo setObject:[NSNumber numberWithFloat:1.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
    [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = songInfo;            
 }

从暂停按钮 - 到 - 播放按钮

Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");
if(playingInfoCenter) {         
    NSMutableDictionary *songInfo = [NSMutableDictionary dictionaryWithDictionary:[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo];
    //[songInfo setObject:songTitle forKey:MPMediaItemPropertyTitle];
    //[songInfo setObject:songArtist forKey:MPMediaItemPropertyArtist];
    [songInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];
    [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = songInfo;
}
鲜于温书
2023-03-14

我发现当使用CoreAudio AU图时,AUGraphStart()将在iOS状态栏和iOS多任务栏中显示回放指示器,AUGraphStation()将清除它们。

 类似资料:
  • 问题内容: 我的键盘包含用于执行各种非标准键盘任务的一行按钮。这些键包含诸如修改音量,播放或暂停以及跳过曲目等功能。如何使用Python模拟基本播放/暂停?顺便说一下,我在Windows上。 问题答案: 我会用pywin32。与安装捆绑在一起的是大量的API文档(通常放在。),它实际上包装了Win32库中的许多内容,该库用于Windows中的许多低级任务。 安装后,您可以使用keybd_event

  • 1.1.1. 多媒体播放 1.1.1. 多媒体播放 我们事实上对上游芯片厂商自带的播放器方式做了调整。 Amlogic 芯片 BaseCode 我们禁用了芯片厂商的原生代码的 libplayer 包,原因是芯片厂商的播放器是直接使用 ALSA 框架来调用音频播放功能的。 这对我们 RokidOS 平台让多个进程使用音频设备造成阻碍。基于这个因素,我们使用了 RokidOS 开发的媒体播放库 lib

  • 对于自定义videoview,我必须重写MediaController(更改按钮的设计并连接到按钮,暂停/播放选择器)。情况是这样的:将视频暂停并打开应用程序,然后再次恢复,视频再次开始播放,而不是从暂停的点开始,因此问题出现了:如何使视频从停止的地方开始播放?我需要在视频活动中更改什么?

  • 我正在开发一个包含两个活动的应用程序,一个是媒体播放器,另一个是要播放的歌曲列表,mp3播放器工作正常,从活动列表中我传递歌曲的名称和播放器工作正常。我有两个问题,如果用户播放一首歌并离开应用程序(这首歌一直在后台播放,这就是假设的工作方式),然后用户返回应用程序,搜索栏设置为0,计时器设置为0,有没有办法“保存”活动......也是如果一首歌正在播放,用户试图播放另一首歌,这首歌在前一首歌的顶部

  • 我正在使用沙漏库进行倒计时。假设5分钟。在这段时间里,我反复播放同样的5个音频文件。这很有效。问题在于暂停。当它打开第一个音频时。它暂停并恢复得很好。当它进入下一首歌,我暂停后,它抛出了一个非法状态例外。 代码有点难看。在onCompletion中,它会一直播放文件,直到结束。然后调用playAudio(),循环开始,直到小时刻度达到零。 pause.setOnClickListener(新视图。