首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在javascript中播放mediaStream对象

如何在javascript中播放mediaStream对象
EN

Stack Overflow用户
提问于 2022-04-12 08:54:30
回答 1查看 961关注 0票数 2

我有一个来自webrtc的mediaStream对象,并且想要播放它。我从另一端从一个在线源(例如"http://songs.ca/track1.mp3“)发送流,我得到了这个MediaStream对象:

代码语言:javascript
运行
复制
MediaStream { id: "{3ac77543-657a-4b31-a490-8e6811d96fec}", active: true, onaddtrack: null, onremovetrack: null }
​
active: true
​
id: "{3ac77543-657a-4b31-a490-8e6811d96fec}"
​
onaddtrack: null
​
onremovetrack: null
​
<prototype>: MediaStreamPrototype { getAudioTracks: getAudioTracks(), getVideoTracks: getVideoTracks(), getTracks: getTracks(), … }
​​
active: 
​​
addTrack: function addTrack()
​​
clone: function clone()
​​
constructor: function ()
​​
getAudioTracks: function getAudioTracks()
​​
getTrackById: function getTrackById()
​​
getTracks: function getTracks()
​​
getVideoTracks: function getVideoTracks()
​​
id: 
​​
onaddtrack: 
​​
onremovetrack: 
​​
removeTrack: function removeTrack()
​​
Symbol(Symbol.toStringTag): "MediaStream"
​​
<get active()>: function active()
​​
<get id()>: function id()
​​
<get onaddtrack()>: function onaddtrack()
​​
<set onaddtrack()>: function onaddtrack()
​​
<get onremovetrack()>: function onremovetrack()
​​
<set onremovetrack()>: function onremovetrack()
​​
<prototype>: EventTargetPrototype { addEventListener: addEventListener(), removeEventListener: removeEventListener(), dispatchEvent: dispatchEvent(), … }

我怎么能听这个声音?

我似乎不能播放这个媒体流,我已经隔离了代码,只生成一个媒体流并播放它

代码语言:javascript
运行
复制
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioCtx = new AudioContext();
var ans = "http://live.hbstreaming.com:2370/stream"
document.getElementById("plyaudi").setAttribute('src', `${ans}`);
const audioElement = document.querySelector('audio');
const track = audioCtx.createMediaElementSource(audioElement);
var destination = audioCtx.createMediaStreamDestination()
track.connect(destination);
console.log(destination.stream)

const playButton = document.querySelector('.btn');

playButton.addEventListener('click', function() {
    if (audioCtx.state === 'suspended') {
        audioCtx.resume();
    }
    
    const audio = new Audio();
    audio.autoplay = true;
    audio.srcObject = destination.stream
}, false);

它还是不能用

EN

回答 1

Stack Overflow用户

发布于 2022-04-12 09:10:20

您可以创建一个audio元素并将您的MediaStream指定为srcObject。有几种方法可以做到这一点;下面是一个例子:

代码语言:javascript
运行
复制
const audio = new Audio();
audio.autoplay = true;
audio.srcObject = mediaStream;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71839758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档