我试图将一个音频文件保存在新的Firebase存储选项中,该音频文件设置为.mp3格式,并通过以下代码上传到Firebase:UploadTask uploadAudio = storageRef.putFile(audioUri);
问题是该音频被存储为video/mp4文件,因此MediaPlayer无法将其作为音频进行播放。我该如何解决这个问题?
我试图将一个音频文件保存在新的Firebase存储选项中,该音频文件设置为.mp3格式,并通过以下代码上传到Firebase:UploadTask uploadAudio = storageRef.putFile(audioUri);
问题是该音频被存储为video/mp4文件,因此MediaPlayer无法将其作为音频进行播放。我该如何解决这个问题?
将评论移至答案:
您可以在上传文件到Firebase时明确地指定元数据。如果您指定setContentType("audio/mpeg")
,它应该正确地映射文件为MP3格式。
class func uploadAudios(data : Data,completion : @escaping (_ succus : String )->Void){
var url = ""
let storage = Storage.storage()
// Create file metadata including the content type
let metadata = StorageMetadata()
metadata.contentType = "audio/mpeg"
let uploadRef = storage.reference().child("audios/\(UUID().uuidString).mp3")
uploadRef.putData(data, metadata: metadata) { metadata,
error in
if error == nil {
print("successfully uploaded Audio")
url = (metadata?.downloadURL()?.absoluteString)!
print("AhmedRabie \(url)")
completion(url)
}
else {
print("UploadError \(String(describing: error))")
}
}
}
setContentType(“audio / mpeg”)
,它应正确将文件映射到MP3格式。 - Frank van Puffelen