【问题标题】:Use AVFoundation to modify audio metadata使用 AVFoundation 修改音频元数据
【发布时间】:2011-12-14 16:43:06
【问题描述】:

我正在开发一个需要修改音频文件元数据的应用。我玩过 Apple 的官方演示 AVReaderWriterOSX。我曾尝试设置AVAssetWriterInputAVAssetWriter 的元数据,但仍然无法将元数据写入输出文件。有人有这方面的例子吗?

提前谢谢你。

【问题讨论】:

    标签: objective-c cocoa metadata avfoundation avassetwriter


    【解决方案1】:

    我想我已经找到了解决方案。最简单的解决方案是使用AVAssetExportSession

    AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]
        initWithAsset:asset presetName:AVAssetExportPresetMediumQuality];
    exportSession.outputURL = ...;
    exportSession.outputFileType = AVFileTypeQuickTimeMovie;
    exportSession.timeRange = CMTimeRangeMake(startTime, duration);
    exportSession.metadata = ...;
    [exportSession exportAsynchronouslyWithCompletionHandler:handlerBlock];
    

    【讨论】:

    • 使用“AVAssetExportPresetPassthrough”预设是无损转换。
    • 不确定截至 2016 年 9 月的 AVAssetWriter 是否仍然如此,但这(仍然)是 AVFoundation 中用于 AVCaptureAudioFileOutput 的一个长期存在的错误,它也有一个元数据属性,但只有标题是书面。专辑名称和艺术家姓名等其他键未写入。为了解决这个问题,您必须捕获/写入临时文件,然后创建一个 AVAssetExportSession(如上)以添加所有元数据。仅用于添加元数据的导出,在原始写入期间应支持它时。太浪费了。
    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    相关资源
    最近更新 更多