如何在 swift 中将 base64 转换为 NSDATA
How to convert base64 into NSDATA in swift
我正在做一个 iOS 项目。它以 base64 字符串的形式将音频存储在 Web 服务器上。当我请求服务器获取所有音频的 base64 字符串并尝试在 NSData
中转换它时,我得到 nil
。
do
{
var audioData: NSData! = NSData(base64EncodedString: audioBase64String, options: NSDataBase64DecodingOptions(rawValue:0))
if audioData != nil
{
let sound = try AVAudioPlayer(data: audioData)
sound.play()
}
else
{
print("Data Not Exist")
}
}
catch
{
}
在Android上相同的base64字符串被转换为字节数组并正在播放,但是在iOS audioBase64String
return nil
中NSData
.
尝试 this library. You can get NSData from base64 string and then init your AVAudioPlayer with this data. Please read AVAudioPlayer Apple 的文档。
这个有效:
Swift 3 和 4:
var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)
Swift 2:
var audioData = NSData(base64EncodedString: recording_base64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
对于Swift 3:
var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)
我正在做一个 iOS 项目。它以 base64 字符串的形式将音频存储在 Web 服务器上。当我请求服务器获取所有音频的 base64 字符串并尝试在 NSData
中转换它时,我得到 nil
。
do
{
var audioData: NSData! = NSData(base64EncodedString: audioBase64String, options: NSDataBase64DecodingOptions(rawValue:0))
if audioData != nil
{
let sound = try AVAudioPlayer(data: audioData)
sound.play()
}
else
{
print("Data Not Exist")
}
}
catch
{
}
在Android上相同的base64字符串被转换为字节数组并正在播放,但是在iOS audioBase64String
return nil
中NSData
.
尝试 this library. You can get NSData from base64 string and then init your AVAudioPlayer with this data. Please read AVAudioPlayer Apple 的文档。
这个有效:
Swift 3 和 4:
var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)
Swift 2:
var audioData = NSData(base64EncodedString: recording_base64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
对于Swift 3:
var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)