- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Fri, 16 Nov 2012 10:51:18 +0100
- To: public-webrtc@w3.org
Changing the subject line slightly to mark that this is a reset... I think this looks good. Let's Just Do It. On 11/15/2012 11:47 AM, Adam Bergkvist wrote: > Hi > > It's time for an update to reflect the feedback so far. > > I've written a few code examples recently using a lot of stream and > track lookups and would like to add another bullet to the list of > common use cases (feedback on these?). We already have: > 1) Lookup by id. > 2) Iterate/loop through all the items in the collection. > > I'd like to add a third: > 3) Get the only track of a certain kind (if any) from a stream created > by getUserMedia(). > > The forEach() approach has gotten some support, but I think it's a bit > clumsy doing 3) from the list of common uses. > > var theTrack; > stream.audioTracks.forEach(function (track) { > theTrack = track; > }); > > (if stream had more than one audio track and we wanted the "first" we > would have to either break the loop somehow or add a condition to not > overwrite theTrack every subsequent time) > > compared to something that can use indexes (but without guaranteeing > stability). > > var theTrack = stream.audioTracks[0]; > > Preferably you would use the id of the track to look it up, but when > you get a fresh stream from getUserMedia() you don't know the id yet. > > To sum up the feedback, people seem to want something like this > (mainly based on Haralds feedback): > > ====== > interface MediaStream { > // ... > > sequence<MediaStreamTrack> getVideoTracks(); > sequence<MediaStreamTrack> getAudioTracks(); > > MediaStreamTrack getTrackById(DOMString trackId); > > void addTrack(MediaStreamTrack track); > void removeTrack(MediaStreamTrack track); > > attribute EventHandler onaddtrack; > attribute EventHandler onremovetrack; > }; > ====== > > // 1) lookup by id > var track = stream.getTrackById(trackId); > > // 2) Iterate > var audioTracks = stream.getAudioTracks(); > for (var i = 0; i < audioTracks.length; i++) > // use audioTracks[i] > > // 3) Get only (first) track of a kind > var audioTrack = localStream.getAudioTracks()[0]; > > /Adam >
Received on Friday, 16 November 2012 09:51:50 UTC