4

watchOS 5 支持新的背景音频模式,以便音频应用程序(Audible、Overcast 等)可以直接从手表播放。我正在为我的应用程序开发音频功能,但我必须使用 FairPlay DRM。我已经用 .m3u8 播放列表对 aac 音频文件进行了分段,我正在使用 AVAssetDownloadTask 下载它们,并在 iPhone 上使用AVAssetResourceLoaderDelegate执行FairPlay关键内容。而且我想添加一个手表应用程序来播放我的内容而无需手机。

但我在手表 API 上没有看到类似的东西。AVAssetResourceLoaderDelegate 和AVContentKeySession在 watchOS 上不可用,并且AVAudioPlayer不采用 AVAsset 或看似任何其他方式来执行 FairPlay 密钥内容(我在手机上使用AVPlayer )。

在WWDC 2018 的为 watchOS 会话创建音频应用程序中,演示者说:

而在 AVAudioEngine 的情况下,您实际上可以结合 AVAudioPlayer 节点播放一些 DRM 内容。因此,您现在可以播放自己的 DRM 内容,自己解密,然后为您的用户播放。

但我还没有找到任何关于AVAudioEngine和 FairPlay 音频的信息。

我查看了AVAudioExportSession以尝试将我的 FairPlay 内容转码为 MP3 或 AAC 或 M4A 或我可以传输到手表的东西,但它认为任何格式都不兼容:

AVAsset *asset = [self getDownloadedFairplayAsset];
NSArray<NSString *> *possible = [AVAssetExportSession exportPresetsCompatibleWithAsset:asset];

    for (NSString *preset in possible)
    {
        AVAssetExportSession *session = [AVAssetExportSession exportSessionWithAsset:asset presetName:preset];
        [session determineCompatibleFileTypesWithCompletionHandler:^(NSArray<AVFileType> * _Nonnull compatibleFileTypes) {
            NSLog(@"Compatible types with %@: %@", preset, compatibleFileTypes);
            //this is always an empty array
        }];
    }

所以,我的问题是:如何在 watchOS 5 应用上播放 FairPlay 加密的音频?

4

0 回答 0