暂停播放时 MPNowPlayingInfoCenter 未正确反应

2024-03-09

我试图让 MPNowPlayingInfoCenter 在暂停播放时正常工作。 (我有一个使用 AVPlayer 进行播放的流媒体音乐应用程序,并且我正在通过 Airplay 在 Apple TV 中播放。)除了暂停之外的所有内容似乎都在 Apple TV UI 中正确反映。我这样初始化它:

MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSDictionary *songInfo = @{
    MPMediaItemPropertyTitle: title,
    MPMediaItemPropertyArtist: artist
};
center.nowPlayingInfo = songInfo;

由于我正在流式传输,因此在开始播放时我没有持续时间信息。当我从流中收到“就绪”信号时,我会更新 Apple TV 上正确显示的持续时间:

MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];
[playingInfo setObject:[NSNumber numberWithFloat:length] forKey:MPMediaItemPropertyPlaybackDuration];
center.nowPlayingInfo = playingInfo;

当用户寻找曲目时,我也可以使用这种技术进行寻找:

[playingInfo setObject:[NSNumber numberWithFloat:length * targetProgress] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];

我不明白的一件事是,如何暂停 Apple TV 上的播放头。当用户在我的用户界面中点击暂停时,我尝试执行以下操作:

MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];        
[playingInfo setObject:[NSNumber numberWithFloat:0.0f] forKey:MPNowPlayingInfoPropertyPlaybackRate];            
center.nowPlayingInfo = playingInfo;

这不会暂停,而是将播放头调回零并继续前进。

如何让播放头在 Apple TV UI 中正确暂停?


我有解决办法!仅设置 MPMediaItemPropertyPlaybackDuration

1 - 当您启动曲目时,请设置曲目总持续时间的属性:

MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSDictionary *songInfo = @{
    MPMediaItemPropertyTitle: title,
    MPMediaItemPropertyArtist: artist
    MPMediaItemPropertyPlaybackDuration : [NSNumber numberWithFloat:length]
};
center.nowPlayingInfo = songInfo;

2 - 当您暂停曲目时...什么都不做。

3 - 当您播放曲目时,使用 currentTrackTime 设置属性:

MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];
NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];        
[playingInfo setObject:[NSNumber numberWithFloat:player.currentTrackTime] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];            
center.nowPlayingInfo = playingInfo;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

暂停播放时 MPNowPlayingInfoCenter 未正确反应 的相关文章

  • 如何使用所有类型的 UTI 初始化 UIDocumentPickerViewController

    我想打开 UIDocumentPickerViewController 并且它应该允许用户选择所有类型的文件 我尝试在 UIDocumentPickerViewController init 方法中提及所有 UTI 但仍然找不到某些文件 如
  • dyld:找不到符号:_kABPersonAddressCityKey XCODE 8 问题

    你好 我的代码在 xcode 中完美运行7 x x 当我更新我的 xcode 时 我遇到了这个问题 请给我解决方案 细节 dyld 未找到符号 kABPersonAddressCityKey 引用自 var containers Bundl
  • 如何确定当前处于活动状态的视图控制器/显示视图的视图控制器?

    在我的应用程序中 我正在排队一些本地通知 当它们触发时我必须呈现模式视图 问题是我有许多视图控制器 其中任何一个当前都可能处于活动状态 因此需要呈现模式视图控制器 如何确定当前正在使用哪一个 我将导航控制器设置为 Windows 根视图控制
  • 录制视频/音频时播放系统声音

    当我开始录制视频时 我试图按照苹果的要求播放 嘟嘟 声 我通过 SO 和其他来源发现 当您有音频输入而没有进行某些配置时 您无法播放声音 这是我尝试的配置方法 private void SetupAudio beepSound AssetB
  • Alamofire 2.0 和 Swift 2 - 标头不起作用。看看如何修复它

    当我将项目升级到swift 2 with Alamofire 2 headers停止工作 代码中没有任何错误 原因是headers不按旧方式工作 login with Alamofire 1 and Swift 1 2 WITH HEADE
  • Objective c,实例成员的内存管理

    我对实例成员的内存管理感到困惑 我有一个带有 ivar 的课程 DetailedResultsTableViewController detailedResultsTableViewController and property nonat
  • Cocoapods 框架不支持配置文件

    我是 iOS 开发领域的新手 我正在从事 iOS 应用程序开发工作 我正在使用 Cocoapods 集成 Alamofire 和 KeychainSwift 等第三方库 当我导出存档以从本地生成 ipa 文件时 它工作正常 但是当我尝试在
  • ReferenceError:找不到变量:__gCrWeb

    我的网站上有 javascript 错误跟踪 最近 我开始在 iPhone IOS 7 和 8 上的 Chrome 版本 37 和 38 中收到以下错误 ReferenceError 找不到变量 gCrWeb 除了一些参考文献之外 我找不到
  • 将发布者组合分配给 PassthroughSubject

    我有以下 RxSwift 视图模型代码 private set var num BehaviorRelay
  • -[NSObject(NSObject) doesNotRecognizeSelector:] 调用时崩溃 -[ViewControllerprepareForSegue:sender:]

    我正在使用 Crashlytics 来检测我的应用程序中的崩溃 我偶尔会收到以下崩溃报告 关键崩溃点是 NSObject NSObject doesNotRecognizeSelector 和 MyViewController m 第 59
  • iOS 从另一个类更新 ViewController UILabel

    我是开发新手 一直在用头撞墙试图弄清楚这一点 我确信 我错过了一些愚蠢的东西 但在尝试了各种不同的解决方案后 我仍然无法得到结果我在寻找 我希望能够从另一个类更新 ViewController 中的 UILabel 这是一个我无法运行的小演
  • Swift:在标签背景中制作图像

    我想将标签放入带有角半径的红色矩形的图像中 条件是图像大小必须等于或略大于标签大小 为此我找到了一个类似的question https stackoverflow com questions 3037902 adding backgroun
  • 如何获取 iTunes connect 团队 ID 和团队名称?

    我正在写下一个Appfile for fastlane 我的问题是我已经有了team name and team id在 Apple 开发中心 但我无法获取iTunes Connect ID itc team id 我正在与不同的团队合作
  • 是否可以在 iOS 上确保 oauth 安全?

    是否可以在 iOS 上确保 oauth 安全 我正在调查OAuth 2 0 http tools ietf org pdf draft ietf oauth v2 12 pdf作为一种为 iOS 应用程序 套件 实现单点登录 授权的方法 为
  • 使 MKMapView 只放大 centerCoordinate 吗?

    我有一个始终位于地图中心的 MKPinAnnotationView 平移和缩放时 该图钉为我提供了地图的中心坐标 纬度 经度 目前 当您放大时 它只会放大您指定地图放大的位置 我真的很想将变焦锁定在图钉上 关于我如何实现这一目标有什么想法吗
  • AVAssetExportSession.requestExportSession 回调从未被调用(swift 3,iOS10)

    以下代码从不调用导出回调 导出会话创建得很好 我没有看到任何错误 也没有任何进展 CPU 为 0 我认为没有例外 状态为 1 进行中 进度为 0 错误为零 视频在画廊中播放 我可以成功获取视频的图像 我已将代码提取到单个 UIViewCon
  • iOS 上服务器发送事件的 webkit 的推荐替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的本机 iOS 应用程序中接收服务器发送的事件 但我不使用 webkit Safari 根据我
  • 在UIView中画线

    我需要在 UIView 中画一条水平线 最简单的方法是什么 例如 我想在 y coord 200 处画一条黑色水平线 我没有使用界面生成器 也许这有点晚了 但我想补充一点 有更好的方法 使用 UIView 很简单 但相对较慢 此方法会覆盖视
  • 在 iOS 上将 SwiftUI 视图转换为 PDF

    我用 SwiftUI 画了一些漂亮的图表 因为它非常简单且容易做 然后我想将整个 SwiftUI 视图导出为 PDF 以便其他人可以以良好的方式查看图表 SwiftUI 没有直接为此提供解决方案 Cheers Alex 经过一番思考 我想到
  • 使用 NSXMLParser 在 Swift 中解析分层 XML

    我确实在以我实际可以使用的形式获取分层 XML 值时遇到问题 因此我们将不胜感激 我对 Swift 和 IOS 开发还很陌生 所以说实话我并不完全理解解析器 但我希望在这之后我能理解 下面是我尝试解析的示例 XML 它来自肥皂网络服务 连接

随机推荐

  • kable col.names 和 header 中的文本下标

    我似乎无法使用 kableExtra 包和包含下标的列名或标题生成 html 表 我尝试了多种方法 但它只是不断显示没有下标的输出 以mtcars数据集为例 data mtcars library kableExtra mtcars gt
  • 如何克服 Godot 将按钮字体更改为默认颜色的问题?

    我正在使用 Godot 4 我在容器中手动创建了很多按钮 我在主场景中设置了一个颜色变量 tempcol 当我单击带有 tempcol 设置的按钮时 比如 Color Red 按钮的字体颜色更改为白色 似乎是默认字体颜色 但是当我单击另一个
  • 银光 mpeg-4

    我目前正在开发一个项目 我需要创建一个网络视频播放器 在当前状态下 我的应用程序播放客户端提供的动态 JPEG 和 H264 AVC 格式的录音 问题是 他还想要 MPEG 4 第 2 部分 视觉 我称之为 mp4v 根据this http
  • iOS 中的精确计时

    我正在查看 iOS SDK 中的 Metronome 示例代码 http developer apple com library ios samplecode Metronome Introduction Intro html http d
  • Zend:如何在我的所有视图中添加网页标题?

    现在我必须在所有视图中分别添加标题 如下所示 and 现在如果我想改变测试项目标题的一部分 那么我必须在我的所有观点中更改它 我怎么能在BootStrap php并将其添加到所有视图中 每当我必须改变这一点时 我都会在一个地方改变它 你应该
  • 如何使用 LD_PRELOAD 运行 gdb?

    我有一个使用 LD PRELOAD 的程序 该程序应该像这样运行 这个 LD PRELOAD path to libfoo so qemu U LD PRELOAD a out 如果 没有 gdb 这是我在运行 gdb 时所做的事情 gdb
  • PHPMailer 显示为 root 用户

    我正在使用 PHP Mailer 发送电子邮件 并且我正在使用 SMTP 这是我正在使用的代码 email new PHPMailer email gt IsSMTP telling the class to use SMTP email
  • 是否有使用 javascript 生成 html 的最佳实践

    我正在调用一个 Web 服务 该服务返回 JSON 格式的对象数组 我想获取这些对象并用 HTML 填充 div 假设每个对象都包含一个 url 和一个名称 如果我想为每个对象生成以下 HTML div img src the name d
  • 如何通过在 Android-Studio 中编辑 build.gradle 将我的库放在 android.jar 前面

    First Here s my Java Build Path in Eclipse common jar core jar framework jar layout jar这四个jar是从Android源代码中打包出来的 其中包含一些开发
  • 覆盖 required_without_all laravel 的单个消息

    我一直在 laravel 中至少使用一个 required without all 字段 这是我的规则代码 rental company id gt required without all camper id take over stat
  • PostgreSQL 返回查询日期的精确或最接近日期

    我有以下 postgresql 语法 它返回值 WHERE session date 匹配 date string 问题是有时 date string 在表中不可用 所以我希望返回最接近 date string 的日期 date strin
  • 模拟器中的iPhone相机

    有没有办法在模拟器中使用 iPhone 摄像头测试代码 一定有人写过一些东西 你可以有一个模拟相机的替换组件 在模拟器中 您可以访问一些示例照片库图像 使用 UIImagePickerControllerSourceTypePhotoLib
  • MySQL 何时尝试更新列的索引?

    我正在尝试确定 MySQL 在什么情况下更新索引 假设我有下表 CREATE TABLE MyTable ID INT NOT NULL AUTO INCREMENT MyIndexedColumn VARCHAR NOT NULL MyN
  • 比较 Access SQL 查询中的日期

    我在使用 Access sql 查询时遇到问题 我对此很陌生 所以作为一个菜鸟 很难弄清楚语法 以下是我的查询 SELECT FROM BookingMaster WHERE JourneyDate 01 08 2012 下面是各自的表格数
  • 如何使用 Conduit 保存文件?

    如何使用管道的库保存文件 我浏览了管道的教程 但似乎找不到任何东西 这是我的用例 main IO main do xxs lt lines lt gt readFile filePath sourceList xxs pipe saveFi
  • 如何从 SwiftUI 部分中删除背景颜色? [复制]

    这个问题在这里已经有答案了 我有一个 SwiftUI 部分 如下所示 struct FormView View var body some View Form Section Button action HStack Spacer Text
  • HTTP 错误 504:尝试阅读 Reddit 评论帖子时网关超时

    我在尝试从 reddit 获取评论的 http 时遇到错误 各种 URL 都发生过这种情况 并非所有 URL 都带有特殊字符 这就是其中之一 在一小时内 可能有 1000 个或更多对 reddit com 域的请求 hdr User Age
  • 使用并行线程提高 Python 执行速度

    假设我有这个示例代码 x foo1 something1 y foo2 something2 z max x y 我想通过使用线程来提高这段代码的执行时间 希望它有帮助 不是吗 我想让事情尽可能简单 所以基本上我想做的是创建两个同时工作的线
  • Google App Engine 灵活环境 0 个实例

    在过去的一周里 我发现我的 GAE 灵活环境中的实例数量降至 0 并且没有新实例启动 我对灵活环境的理解是 这不应该是可能的 https cloud google com appengine docs the appengine envir
  • 暂停播放时 MPNowPlayingInfoCenter 未正确反应

    我试图让 MPNowPlayingInfoCenter 在暂停播放时正常工作 我有一个使用 AVPlayer 进行播放的流媒体音乐应用程序 并且我正在通过 Airplay 在 Apple TV 中播放 除了暂停之外的所有内容似乎都在 App