从带有 URL 的 mp3 文件中获取元数据(swift)

Posted

技术标签:

【中文标题】从带有 URL 的 mp3 文件中获取元数据(swift)【英文标题】:Get metadata from mp3 file with URL (swift) 【发布时间】:2015-08-24 20:14:57 【问题描述】:

我是 swift 新手,我想从位于服务器上的 mp3 文件中获取数据(我使用了一个 URL,例如:http://myserver.eu/file.mp3)。

我使用了一些 tuto,例如 http://geekyviney.blogspot.com/2015/02/extracting-data-like-thumbnail-images.html(它正在处理本地文件,我正在尝试使其与来自 url 的文件一起使用) 我有一个例外: 线程 1:EXC_BAD_INSTRUCTION(code=EXC_I1386_INVOP, subcode=0x0

致命错误:在展开可选值 (lldb) 时意外发现 nil

我想 pathForResource 只适用于本地文件?感谢您的帮助

var filePath = NSBundle.mainBundle().pathForResource("http://servername.eu/filename", ofType: "mp3")
        var fileUrl = NSURL(fileURLWithPath: filePath!)
        var asset = AVAsset.assetWithURL(fileUrl) as AVAsset

【问题讨论】:

确保查看所有随附的文档。 PathForResource 用于资源文件,这意味着应用程序中的本地文件,而不是远程文件。 【参考方案1】:

你说得对,pathForResource 用于访问应用程序包中的本地文件。

要使用http 方案从 URL 加载数据,请使用此语法

let urlString = "http://servername/filename"
let serverURL = NSURL(string: urlString)!
if let asset = AVAsset.assetWithURL(serverURL) as? AVAsset 
  // do something with the asset

【讨论】:

【参考方案2】:

Swift 3 版本:

let urlString = "http://servername/filename"
if let serverURL = URL(string: urlString) 
    let asset = AVAsset(url: serverURL)
    // do something with the asset

别忘了添加正确的导入

import AVFoundation 

【讨论】:

以上是关于从带有 URL 的 mp3 文件中获取元数据(swift)的主要内容,如果未能解决你的问题,请参考以下文章

如何从 .mp3 文件中获取元数据并使用 FFmpeg 将其作为文本放入视频中?

从mp3获取没有元数据(ID3)的数据的方法[关闭]

powershell Get-MetaData旨在从文件中获取元数据......最初用于查找.mp3的比特率。

使用 android.media.Rating 从 android 中的歌曲列表 (MP3) 中获取评分元数据

使用 NAudio 从 MP3 广播流中获取元数据

使用 html5 文件系统 api 获取本地 mp3 文件的元数据