2016-04-27 9 views
2

Ich verwende die tabCapture-API von Chrome (siehe https://developer.chrome.com/extensions/tabCapture), um einen Audiostream von der derzeit aktiven Registerkarte in Chrome aufzunehmen. Dadurch entsteht ein Mediastream-Objekt (siehe https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API) mit Daten gefüllt, zum Beispiel, kann ich diese Informationen von Chrome Konsole ziehen:Wie kann ich den WebRTC-Audio-Stream in eine gemeinsam nutzbare Audio-Stream-URL umwandeln?

MediaStream {id: "qih5TZY7OTyNnydtEQ4IwK3FSFiaYhz54TeG", active: true, onactive: null, oninactive: null, onaddtrack: null…} 
active: true 
id: "qih5TZY7OTyNnydtEQ4IwK3FSFiaYhz54TeG" 
onactive: null 
onaddtrack: null 
onended: function() 
oninactive: null 
onremovetrack: null 
__proto__: MediaStream 

Wie kann ich diese Mediastream in eine Audio-Streaming-URL zu manipulieren, die ich in einer anderen Anwendung übergeben kann/Browser zum Einstellen, ähnlich einem Streaming Radio Service?

Kann ich etwas wie URL.createObjectUrl (my-media-stream) verwenden?

Siehe https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

Habe ich eine websocket statt WebRTC in Verwendung konvertieren?

Kann ich Socket.io verwenden?

Danke!

Antwort

1

Eine stream ist eine lokale Ressource hier. createObjectURL ist nur ein Hack, um es lokal per URL zu verweisen.

Wenn Sie diese Daten zu einem Server übertragen möchten, auf dem sie hinter einer permanenten URL für Broadcasts bereitgestellt werden können, müssen Sie noch etwas tun.

Aktualisierung: Wenn Sie einen Stream an einen anderen Computer senden möchten, können Sie eine RTCPeerConnection für den anderen Computer einrichten und den Stream auf diese Weise senden.

+0

Ok, danke. Es ist möglich, dass eine lokale URL gut genug ist, da ich eigentlich nur einen Stream innerhalb des lokalen Netzwerks übertragen möchte. (Eine globale URL ist ein netter zu haben, aber ich werde mich jetzt für local entscheiden). Also mit createObjectUrl lassen Sie mich mindestens eine lokale URL erstellen? Ich werde nachforschen. – nyarasha

+0

@nyarasha nein, ich meine lokal für die Maschine. Um einen Stream an einen anderen Rechner zu senden, könnten Sie eine RTCPeerConnection einrichten. – jib

+0

Richtig, das ist, wenn das verbindende Gerät einen Browser hat, der WebRTC verwenden kann. In diesem Fall möchte ich einen Stream an ein Gerät senden, das keinen Webbrowser besitzt. Trotzdem danke. – nyarasha