如何在iOS 11的Swift中获取FLAC文件元数据?

编程入门 行业动态 更新时间:2024-10-04 23:26:23
本文介绍了如何在iOS 11的Swift中获取FLAC文件元数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我需要获取FLAC文件的元数据.我尝试了以下代码:

I need to get metadata of an FLAC file. I tried following code:

let item = AVPlayerItem(url: URL(fileURLWithPath: path)) let commonMetadata = item.assetmonMetadata songInfo[ARTIST_NAME] = "Unknown" songInfo[GENRE_NAME] = "Unknown" songInfo[ALBUM_NAME] = "Unknown" songInfo[PLAY_COUNT] = "0" for metadataItem in commonMetadata { switch metadataItemmonKey?.rawValue ?? "" { case "type": songInfo[GENRE_NAME] = metadataItem.stringValue case "albumName": songInfo[ALBUM_NAME] = metadataItem.stringValue case "artist": songInfo[ARTIST_NAME] = metadataItem.stringValue default: break } }

但这不适用于FLAC文件.任何帮助将不胜感激.

But this is not working for a FLAC file. Any help will be appreciated.

推荐答案

只需使用 AudioToolbox API:

func audioFileInfo(url: URL) -> NSDictionary? { var fileID: AudioFileID? = nil var status:OSStatus = AudioFileOpenURL(url as CFURL, .readPermission, kAudioFileFLACType, &fileID) guard status == noErr else { return nil } var dict: CFDictionary? = nil var dataSize = UInt32(MemoryLayout<CFDictionary?>.size(ofValue: dict)) guard let audioFile = fileID else { return nil } status = AudioFileGetProperty(audioFile, kAudioFilePropertyInfoDictionary, &dataSize, &dict) guard status == noErr else { return nil } AudioFileClose(audioFile) guard let cfDict = dict else { return nil } let tagsDict = NSDictionary.init(dictionary: cfDict) return tagsDict }

示例输出:

- 0 : 2 elements * key : artist * value : Blue Monday FM - 1 : 2 elements * key : title * value : Bee Moved - 2 : 2 elements * key : album * value : Bee Moved - 3 : 2 elements * key : approximate duration in seconds * value : 39.876 - 4 : 2 elements * key : source encoder * value : reference libFLAC 1.2.1 win64 200807090

更多推荐

如何在iOS 11的Swift中获取FLAC文件元数据?

本文发布于:2023-11-26 23:15:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1635605.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   数据   如何在   iOS   Swift

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!