从Gmail API附件数据创建AVAset无法由AVPlayer播放

问题描述

我目前正在使用Gmail API来获取电子邮件,然后使用附件ID来下载我的iOS应用中每封电子邮件的附件。

我已经能够成功获取附件,但是遇到一个问题,我可以获取附件数据(Base64字符串)并将其转换为AVAsset,然后将其用于创建附件。播放器项目,并由AVPlayer播放。但是,我收到一条错误日志,指出播放器无法加载播放器项目。

请注意,我仅在事先检查电子邮件中是否包含视频附件的情况下才提取附件(此逻辑正常运行;为简洁起见,未显示。

    func getEmailAttachments(email: Email,token: String){
        
        let headers: HTTPHeaders = [
            "api-key": "","Authorization": "Bearer \(token)","Accept": "application/json"
        ]
        
        //https://gmail.googleapis.com/gmail/v1/users/{userId}/messages/{messageId}/attachments/{id}

        AF.request("https://www.googleapis.com/gmail/v1/users/me/messages/\(email.id)/attachments/\(email.payload.body.attachmentId!)",headers: headers)
            .response
            
            { [self] response in
              
                do {
                    let json = try JSON(data: response.data!)                    
                    let asset = response.data?.getAVAsset()
                    let playerItem = AVPlayerItem(asset: asset!)
                    let avPlayer = AVPlayer(playerItem: playerItem)
                    avPlayer.play()
                } catch {
                    
                }
            }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...