如何快速将base64转换为NSDATA
问题描述:
我正在研究一个iOS项目.它将音频以base64字符串的形式存储在Web服务器上.当我请求服务器获取所有音频的base64字符串并尝试在NSData
中进行转换时,我正在获取nil
.
I am working on an iOS project. It stores audio on web server in the form of base64 string. When I request server to get base64 Strings for all audios and tried convert it in NSData
I am getting 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
中,返回nil
表示NSData
.
On Android same base64 string is converted into byte array and is playing, but in iOS audioBase64String
return nil
for NSData
.
答
这有效:
快速3和4:
var audioData = Data(base64Encoded: recording_base64, options: .ignoreUnknownCharacters)
迅速2:
var audioData = NSData(base64EncodedString: recording_base64, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)