HLS 元数据 ID3 标记不起作用

2023-12-24

我在 TableView 中有一个音频 URL 列表,所以每次我点击每个单元格时didSelectRowAt这个方法将被调用

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    // Prepare Audio URL
    let audioUrl = URL(string: (channelSelected.audioUrl?.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed))!)
    let playerItem = AVPlayerItem(url: audioUrl!)
    playerItem.addObserver(self, forKeyPath: "timedMetadata", options: .new, context: nil)
    player = AVPlayer(playerItem: playerItem)
    playerViewController = AVPlayerViewController()
    playerViewController.player = player
    present(playerViewController, animated: true, completion: {
        self.playerViewController.player?.play()
    })
}

根据教程,我实现了观察值侦听器

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    print("keypath = \(keyPath!)")
    let avPlayerItem: AVPlayerItem = object as! AVPlayerItem
    if let timedMetadata = avPlayerItem.timedMetadata {
        print("Timed metadata = \(timedMetadata)")
    } else {
        print("Timed metadata nil")
    }
}

问题是timedMetadata始终为零。如有帮助,将不胜感激。


您的代码工作正常,此问题的原因是由服务器端的问题引起的。

你可以使用这个工具mp3tag https://www.mp3tag.de/en/编辑音频文件 - 添加元数据标签并将其上传到服务器。

作为示例,您可以尝试包含元数据标签的这些音频:

http://ice1.somafm.com/groovesalad-128-mp3 http://ice1.somafm.com/groovesalad-128-mp3

https://developer.jwplayer.com/jw-player/demos/basic/audio-metadata/assets/index.m3u8 https://developer.jwplayer.com/jw-player/demos/basic/audio-metadata/assets/index.m3u8

为了确认,上述文件应该可以很好地与您的代码配合使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HLS 元数据 ID3 标记不起作用 的相关文章

  • VNFaceObservation BoundingBox 在纵向模式下不缩放

    作为参考 这源于一个问题视觉API 我正在努力使用Vision通过a检测图像中的人脸VNDetectFaceRectanglesRequest 它在确定图像中正确的人脸数量并提供boundingBox对于每张脸 我的麻烦是由于我UIImag
  • Swift 将十进制坐标转换为度、分、秒、方向

    我怎样才能将其转换为快速 我最好的猜测是所有 int 都变成了 var 删除所有导致 的 此外 如果有的话可以给我指出一个很好的来源来了解事物如何转换 那就太好了 NSString coordinateString int latSecon
  • 使用 Core Data Swift 对 TableView 和行进行分区

    我在 sqlite 中有两个表 代码由 XCode Generation 生成 class Event NSManagedObject NSManaged var startDate NSDate NSManaged var details
  • 以编程方式显示 UIView

    我试图 通过动画 显示 UIView 具体来说 我想显示视图的中心部分 然后慢慢地显示它的外边缘 有点像拉开窗帘 我的第一次尝试是简单地将边界矩形设置得更小 并将其动画化为视图框架的完整大小 但这没有达到预期的效果 因为通过更改边界 我也更
  • 使用 Swift 选择 NSTextField 中的所有文本

    如何使用 Swift 以编程方式选择 NSTextField 中的所有文本 对于 UITextField 有一个类似的方法 textField selectedTextRange textField textRangeFromPositio
  • 更改 UITableView 中移动单元格的默认图标

    我需要更改 UITableView 中移动单元格的默认图标 这个 是否可以 这是一个非常棘手的解决方案 可能无法长期工作 但可能会给您一个起点 重新排序控制是UITableViewCellReorderControl 但这是一个私有类 因此
  • MKPolylineView initWithPolyLine:在 iOS 7 中已弃用

    我收到以下错误 initWithPolyline 已弃用 首先在 iOS 7 0 中弃用 MKPolylineView lineView MKPolylineView alloc initWithPolyline overlay 代替这个的
  • UI键盘回避和自动布局

    鉴于 iOS 6 中对自动布局的关注以及 Apple 工程师的推荐 查看 WWDC 2012 视频 我们不再直接操作视图的框架 那么如何仅使用自动布局和 NSLayoutConstraint 来避免键盘呢 Update 这看起来是一个合理的
  • 如何在操作表中添加日期选择器?

    IBAction showCatPicker if self catList nil self catList nil catList release self catList NSMutableArray alloc init self
  • iOS 8 UITableView 分隔符插入 0 不起作用

    我有一个应用程序 其中UITableView的分隔符插入设置为自定义值 右0 Left 0 这完美地适用于iOS 7 x 但是在iOS 8 0我看到分隔符插入设置为默认值15在右侧 即使在 xib 文件中它设置为0 它仍然显示不正确 我该如
  • 块执行后变量返回 null

    我正在调度一个队列来在单独的线程上下载一些 flickr 照片 在 viewWillAppear 中 当我记录块内数组的内容时 它完美地显示了所有内容 dispatch queue t photoDowonload dispatch que
  • 在哪里可以找到有关 IOS 日历同步的优秀教程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发 iPhone 应用程序 如何将新事件与 iOS 日历同步 您可以浏览此 github 代码
  • 为什么我的matchedGeometryEffect根据右下点移动?

    我只是尝试使用matchedGeometryEffect 制作一些动画 但是 存在一个错误 即该对象是根据右下点而不是中心进行动画处理的 我使用的代码在这里 import SwiftUI struct Test View Namespace
  • 平滑地将渐变应用于 UIImage

    我正在尝试使用 CoreGraphic 将渐变应用于 UIImage 然而 我得到的结果不是很好 我想在图像底部创建一个黑色到透明的渐变 以便为我放置一些文本创建对比度 然而 我能够实现的渐变与图像不能很好地融合 你可以清楚地看到中心的分离
  • Swift 3 的 NSLog 问题

    迁移到 Swift 3 后 当我尝试执行以下操作时出现错误 self publicDB save listRecord completionHandler record error gt Void in if let saveError e
  • 如何在 iOS 中通过 3G 连接创建无线热点

    如果我愿意 我将如何创建一个像这样的应用程序MyWi http intelliborn com mywi html 即 WiFi 网络共享应用程序 实现该功能需要哪些步骤 我需要使用哪些框架 库 我们的目标不是尝试将此应用程序放入应用程序商
  • 如何使用 AutoLayout 使 UIView 向上滑动动画?

    this is what I like to achieve 我想执行向上滑动动画 用户可以向上滑动 UIView2 并且 UIView2 将在屏幕上停止一半 我知道如何通过 UIButton 操作以模态方式呈现 UIViewControl
  • 如何在IOS中使用“*”字符进行呼叫(拨号)?

    我希望用 字符来调用 例如 gt 711313 目前 我正在使用这段代码 NSString str NSString stringWithFormat tel tmp UIApplication sharedApplication open
  • 在 Swift 中使用 Obj-C 完成块

    在 Objective C 中 我有一个完成块类定义为 File h typedef void MYCompletionBlock BOOL success NSDictionary result NSError error 然后 在 Sw
  • 将对象映射到 TableView 部分的 Swift 二维数组

    我想不出更好的方法来做到这一点 我将学生对象的所有属性映射到二维数组中 所以我的电视有几个部分 我也不能使用静态表视图 如果是这样 这个问题就不会存在 所以我在 TVC 中的代码 let currentUser PFUser current

随机推荐

  • 如何将我的电子表格链接到应用制作工具?

    我是 App Maker 的新用户 刚刚开始使用 Google App Scripts 进行编码 所以基本上我对这个主题了解不多 今天我正在开发一个已经存在于 Google Sheets 中的应用程序 我必须使用应用程序制作工具重新创建它
  • 了解操作系统如何存储/检索 IO 设备输入

    我对键盘等 I O 设备如何存储输入以供操作系统或应用程序使用感到有点困惑 如果我有一台单处理器 单核CPU 的计算机 并且当前正在执行的进程是一个游戏 那么游戏如何能够 感知 键盘输入 即使按下按键会强制硬件中断 从而实现上下文切换 然后
  • 在海岸线附近的 ggplot 中选择栅格

    所以我有一张绘制加泰罗尼亚气压的地图 这是一个特写 我现在想选择气压高于 97 kPa 深蓝色 的所有观测值 并用它们创建一个新的数据框以供进一步分析 这是棘手的一点 我想选择符合高度过滤器 AAAAND 的观测值 并且位于地中海沿岸 大多
  • “AspNetUser”类型上的“Claims”属性不是导航属性

    我正在使用 ASP NET Identity 2 2 我正在将 ASP NET 旧成员资格迁移到新的身份系统 我正在按照中提到的步骤进行操作本文 http www asp net identity overview migrations m
  • 如何使用 Google Relyparty 禁用用户 Firebase?

    我想从我的应用程序中禁用 Firebase 用户 但 Firebase 文档只提供了删除用户的选项 我认为解决方案就像创建用户一样 https www googleapis com identitytoolkit v3 relyingpar
  • 用于 bash 补全的“have”关键字

    Is havebash 中的关键字 或者 bash 补全脚本使用非 bash 的语言吗 have gcc gcc 是很常见 看 grep have etc bash completion d 我找不到有关我见过的 bash 完成教程的任何信
  • 如何在 R 中为数据框着色

    我有以下类型的数据框 gt df V1 V2 V3 V4 V5 1 10 603 3 100 2 1 5 1 2 10 603 3 101 3 2 4 5 3 10 603 3 102 1 3 3 2 4 10 603 1 103 4 4
  • .NET 中是否存在与 UI 无关的 Point 结构?

    我认识几个Point NET 中的结构 System Drawing Point System Windows Point Sys UI Point 但它们都位于高级 UI 库 GDI WPF AJAX 中 我需要一个Point我不想将其与
  • CUDA/OpenCL 中的现实死锁示例

    对于我正在编写的教程 我正在寻找一个 现实 且简单的示例 说明由于不了解 SIMT SIMD 而导致的死锁 我想出了这个片段 这似乎是一个很好的例子 任何意见将不胜感激 int x threadID 2 if threadID gt x v
  • Python 中是否有已经制作好的字母表? [复制]

    这个问题在这里已经有答案了 我需要创建随机单词 名称random choice alphabet 对于我在 repl 中的许多游戏来说 但输入它并制作大写版本 仅辅音 元音等是很痛苦的 有没有一种内置的或可导入的方法来获取 python 中
  • 让 Bootstrap datetimepicker 在 ajax 加载后工作

    我有这个简单的脚本 可以正常形式工作 但是 如果我通过 ajax 将表单加载到 Bootstrap 3 模式中 时间和日期选择器不起作用 我知道问题是因为我通过 ajax 加载表单 那么如何为新加载的a
  • 简单的 Java 扫描器代码不起作用[重复]

    这个问题已经存在了 这是我为制作一个简单游戏而编写的一些基本代码的框架 Scanner in new Scanner System in String name String playing int age do System out pr
  • 如何从 iPhone 中的资源文件夹中获取文件夹和文件列表?

    我正在资源文件夹中执行文件夹结构 例如 Resource gt MyData gt S1 然后在S1 gt Name png data ppt 现在我想获取所有文件夹列表和文件名 这里 MyData 名称只是静态的 其他名称可能会更改 就像
  • 如何使用baseadapter将获取的json数据显示到listview中

    我是 android 和 java 的新手 最近我在使用 baseadapter 将获取的 json 数据显示到 listview 时遇到问题 起初我用过这段代码 Override protected void onCreate Bundl
  • 干净地绑定/取消绑定到应用程序中的服务

    我有一个绑定到持久服务的 Android 应用程序 一旦启动startService 该服务是应用程序的一个组成部分 因此几乎在每个 Activity 中都会使用该服务 因此 我只想绑定到服务一次 而不是在每个活动中绑定 取消绑定 并在应用
  • jQuery 中有没有类似 except 的东西?

    这怎么可能 以下构建不起作用 multibutton click function event some stuff before this next menu slideDown slow hide all other menus exc
  • Java Server Faces 2.0 的主要缺点是什么?

    昨天 我看到了有关 Java Server Faces 2 0 的演示 尽管我目前是一名快乐的 ASP NET MVC jQuery 开发人员 但它看起来确实令人印象深刻 我最喜欢 JSF 的是大量支持 AJAX 的 UI 组件 这似乎使开
  • 使用Jquery ajax json响应?

    有一个 ajax 请求 如下所示 ajax url users action type POST data myData context this error function success function this removeCla
  • 在多台计算机中同步 VirtualEnv

    我最近购买了一台新笔记本电脑 因此我不仅可以在工作站上工作 我有一个 Django REST 应用程序 对于这个项目 我使用 VirtualEnv 我的问题是 如何 同步 virtualenv 来安装新的依赖包 在我的工作站中 我安装了 D
  • HLS 元数据 ID3 标记不起作用

    我在 TableView 中有一个音频 URL 列表 所以每次我点击每个单元格时didSelectRowAt这个方法将被调用 func tableView tableView UITableView didSelectRowAt index