如何在 SWIFT 中获得 MP3 比特率

How to get an MP3 bit rate in SWIFT

我正在寻找一种方法来为来自 url link.

的 mp3 音频获取类似 128kbps320kbps 的 mp3 比特率

我有一个 UITableView 从 url 列表加载文件列表,我想显示音频质量。 我试过使用 AVAudioPlayerAVPlayer 但没有成功。 请帮忙,我怎样才能做到这一点?

 do{
       let audioPlayer = try AVAudioPlayer(contentsOf:audioURL)
       print(audioPlayer.settings)
       if #available(iOS 10.0, *) {
                print(audioPlayer.format)
            } else {
                // Fallback on earlier versions
            }
        }catch {
            print("Error getting the audio file")
        }

我找到了 AVAudioFormat class 的变量名 sampleRate。你试过打电话给audioPlayer.format.sampleRate吗?

只是使用公式。就是这么简单..

var bitrate: Int {      // kbps
        if size > 0 && duration > 0 {
            return size * 8 / 1000 / duration
        }

分机

import AVFoundation

extension AVURLAsset {

    var fileSize : Int? {
        
        let keys: Set<URLResourceKey> = [.totalFileSizeKey, .fileSizeKey]
        let resourceValues = try? url.resourceValues(forKeys: keys)

        return resourceValues?.fileSize ?? resourceValues?.totalFileSize

    }
    
    // kbps
    
    var bitrate : Int {

        if (fileSize ?? 0) > 0 && duration.seconds > 0 {

            return Int(Double(fileSize ?? 0) * 8 / 1000 / duration.seconds)

        }
        
        return 0
        
    }

}

用法

// bitrate
    
let avAsset = AVURLAsset.init(url: mp3Url)
    
let bitrate = avAsset.bitrate
print("avAsset.bitrate: \(bitrate)")