小编Eel*_*lco的帖子

使用WebRTC流媒体文件

这是我的用例:爱丽丝有一个很酷的新媒体曲目,她希望鲍勃收听.她在浏览器中选择媒体文件,媒体文件立即开始在Bob的浏览器中播放.

我现在还不确定是否可以使用WebRTC API进行构建.我可以找到的所有示例都使用通过getUserMedia()获得的流,但这就是我所拥有的:

var context = new AudioContext();
var pc = new RTCPeerConnection(pc_config);

function handleFileSelect(event) {
    var file = event.target.files[0];

    if (file) {
        if (file.type.match('audio*')) {
            console.log(file.name);
            var reader = new FileReader();

            reader.onload = (function(readEvent) {
                context.decodeAudioData(readEvent.target.result, function(buffer) {
                    var source = context.createBufferSource();
                    var destination = context.createMediaStreamDestination();
                    source.buffer = buffer;
                    source.start(0);
                    source.connect(destination);
                    pc.addStream(destination.stream);
                    pc.createOffer(setLocalAndSendMessage);
                });
            });

            reader.readAsArrayBuffer(file);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在接收方面,我有以下内容:

function gotRemoteStream(event) {
    var mediaStreamSource = context.createMediaStreamSource(event.stream);
    mediaStreamSource.connect(context.destination);
}
Run Code Online (Sandbox Code Playgroud)

此代码不会使媒体(音乐)在接收方播放.但是,在WebRTC握手完成并且调用了gotRemoteStream函数之后,我确实收到了一个已结束的事件.gotRemoteStream函数被调用的介质不开始播放.

在爱丽丝的一面,神奇的假设发生在说明 …

html javascript html5 webrtc

10
推荐指数
1
解决办法
4604
查看次数

标签 统计

html ×1

html5 ×1

javascript ×1

webrtc ×1