注册

webim 下载的音频 播放 问题


我下载 上传的 音频 返回一个 这样的 路径  要怎么 播放 blob:file%3A///c6ac39a9-fab1-4942-ad39-696587760144 
 
已邀请:

lizg - ……

这是二进制的,最好是拿到url+uuid  下载播放
下载 播放的 话  就 会跳出 一个 下载 成功的 提示 不好看 我已经 弄过了
应该  有直接 处理的 方法 在dome里 就是 我找不到
 

lizg - ……

componentDidMount: function componentDidMount() {
            var me = this;

            var options = { url: me.props.value };

            options.onFileDownloadComplete = function (response) {
                var objectURL = WebIM.utils.parseDownloadResponse.call(Demo.conn, response);

                me.refs.audio.onended = function () {
                    me.setState({ status: 0 });
                };

                if ((WebIM.utils.getIEVersion === null || WebIM.utils.getIEVersion > 9) && window.Audio) {
                    me.setState({ src: objectURL });
                }
            };

            options.onFileDownloadError = function () {
                me.stop();
                me.setState({ status: 0 });
            };

            options.headers = {
                'Accept': 'audio/mp3'
            };
            WebIM.utils.download.call(Demo.conn, options);
        },
图片是这样的,@hblzg123

图片1.png

lizg - ……

转成MP3了么?  是哪个版本的sdk?

lizg - ……

/easemobwebim-sdk收到音频消息回调方法的实现
var handleAudioMessage = function(message) {
    var filename = message.filename;
    var filetype = message.filetype;
    var from = message.from;
    var mestype = message.type;//消息发送的类型是群组消息还是个人消息
    var contactDivId = from;
    if (mestype == groupFlagMark || mestype == chatRoomMark) {
        contactDivId = mestype + message.to;
    }

    
    var audio = document.createElement("audio");
    audio.controls = "controls";
    audio.innerHTML = "当前浏览器不支持播放此音频:" + filename;
    //audio.src = message.url;

    appendMsg(from, contactDivId, {
        data : [ {
            type : 'audio',
            filename : filename || '',
            data : audio,
            audioShim: !window.Audio
        } ]
    });/**/

    var options = message;
    options.onFileDownloadComplete = function(response, xhr) {
        var objectURL = Easemob.im.Helper.parseDownloadResponse.call(this, response);
        if (Easemob.im.Helper.getIEVersion != 9 && window.Audio) {
            audio.onload = function() {
                audio.onload = null;
                window.URL && window.URL.revokeObjectURL && window.URL.revokeObjectURL(audio.src);
            };
            audio.onerror = function() {
                audio.onerror = null;
            };
            audio.src = objectURL;
            return;
        }
    };
    options.onFileDownloadError = function(e) {
        appendMsg(from, contactDivId, e.msg + ",下载音频" + filename + "失败");
    };
    options.headers = {
        "Accept" : "audio/mp3"
    };
    Easemob.im.Helper.download(options);
};
实际上前面还有个名称的,但是我去掉了,<audio controls="" src="blob:file%3A///235f1f29-140b-4313-89fd-d63633a97f7d">当前浏览器不支持播放此音频:38520160920T171151.amr</audio>
@hblzg123

图片2.png

lizg - ……

  var options = message;
    options.onFileDownloadComplete = function(response, xhr) {
        var objectURL = Easemob.im.Helper.parseDownloadResponse.call(this, response);
        if (Easemob.im.Helper.getIEVersion != 9 && window.Audio) {
            audio.onload = function() {
                audio.onload = null;
                window.URL && window.URL.revokeObjectURL && window.URL.revokeObjectURL(audio.src);
            };
            audio.onerror = function() {
                audio.onerror = null;
            };
            audio.src = objectURL;
            return;
        }
    };
    options.onFileDownloadError = function(e) {
        appendMsg(from, contactDivId, e.msg + ",下载音频" + filename + "失败");
    };
    options.headers = {
        "Accept" : "audio/mp3"
    };
    Easemob.im.Helper.download(options);
};

lizg - ……

demo为例:Request URL:
blob:null/6851fc5a-b6a6-4568-a7b8-f4a8e289b7da  
 
Request URL:
https://a1.easemob.com/easemob-demo/chatdemoui/chatfiles/4713eb20-7f14-11e6-86ad-a3bf    使用这个下载

lizg - ……


webim.jpg


选择分支
你好我也遇见src是blob:file///的问题了,请问下是怎么解决的吗?

要回复问题请先登录注册