Embed: HLS trackswitching now default, improvements to no audio/video-checkboxes
This commit is contained in:
		
							parent
							
								
									6ff35446ae
								
							
						
					
					
						commit
						017e28932a
					
				
					 3 changed files with 24 additions and 26 deletions
				
			
		
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -742,30 +742,7 @@ function MistVideo(streamName,options) { | ||||||
|                 //if (!MistUtil.object.keys(usetracks).length) { return; } //don't do this; allow switching back to auto
 |                 //if (!MistUtil.object.keys(usetracks).length) { return; } //don't do this; allow switching back to auto
 | ||||||
|                  |                  | ||||||
|                 //create source url
 |                 //create source url
 | ||||||
|                 var newurl; |                 var newurl = MistVideo.source.url;                 | ||||||
|                 if (MistVideo.source.type == "html5/application/vnd.apple.mpegurl") { //for HLS, use a different format for track selection
 |  | ||||||
|                   newurl = MistVideo.source.url.split("/"); |  | ||||||
|                   var m3u8 = newurl.pop(); //take this off now, it will be added back later
 |  | ||||||
|                   var hlstracks = []; |  | ||||||
|                   for (var i in usetracks) { |  | ||||||
|                     //for audio or video tracks, just add the tracknumber between slashes
 |  | ||||||
|                     switch (i) { |  | ||||||
|                       case "audio": |  | ||||||
|                       case "video": |  | ||||||
|                         if (usetracks[i] == "none") { continue; } |  | ||||||
|                         hlstracks.push(usetracks[i]); |  | ||||||
|                         break; |  | ||||||
|                     } |  | ||||||
|                   } |  | ||||||
|                   if (hlstracks.length) { newurl.push(hlstracks.join("_")); } |  | ||||||
|                   newurl.push(m3u8); //put back index.m3u8
 |  | ||||||
|                   newurl = newurl.join("/"); |  | ||||||
|                   usetracks = {}; |  | ||||||
|                 } |  | ||||||
|                 else { |  | ||||||
|                   newurl = MistVideo.source.url; |  | ||||||
|                 } |  | ||||||
|                  |  | ||||||
|                 var time = MistVideo.player.api.currentTime; |                 var time = MistVideo.player.api.currentTime; | ||||||
|                  |                  | ||||||
|                 //actually switch to the new source url
 |                 //actually switch to the new source url
 | ||||||
|  |  | ||||||
|  | @ -1291,6 +1291,9 @@ MistSkins["default"] = { | ||||||
|            |            | ||||||
|           if (!MistVideo.options.setTracks) { MistVideo.options.setTracks = {}; } |           if (!MistVideo.options.setTracks) { MistVideo.options.setTracks = {}; } | ||||||
|           MistVideo.options.setTracks[type] = value; |           MistVideo.options.setTracks[type] = value; | ||||||
|  |           if ((value === true) && selections[type]) { | ||||||
|  |             MistUtil.event.send("change",null,selections[type]); | ||||||
|  |           } | ||||||
|            |            | ||||||
|           if ("setTrack" in MistVideo.player.api) { |           if ("setTrack" in MistVideo.player.api) { | ||||||
|             return MistVideo.player.api.setTrack(type,value); |             return MistVideo.player.api.setTrack(type,value); | ||||||
|  | @ -1378,6 +1381,15 @@ MistSkins["default"] = { | ||||||
|               cell.appendChild(checkbox); |               cell.appendChild(checkbox); | ||||||
|               checkboxes[type] = checkbox; |               checkboxes[type] = checkbox; | ||||||
|                |                | ||||||
|  |               if (MistVideo.options.setTracks && (MistVideo.options.setTracks[type])) { | ||||||
|  |                 if (MistVideo.options.setTracks[type] == "none") { | ||||||
|  |                   checkbox.checked = false; | ||||||
|  |                 } | ||||||
|  |                 else { | ||||||
|  |                   checkbox.checked = true; | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |                | ||||||
|               MistUtil.event.addListener(checkbox,"change",function(){ |               MistUtil.event.addListener(checkbox,"change",function(){ | ||||||
|                 //make sure at least one checkbox is checked
 |                 //make sure at least one checkbox is checked
 | ||||||
|                 var n = 0; |                 var n = 0; | ||||||
|  | @ -1411,6 +1423,15 @@ MistSkins["default"] = { | ||||||
|                 } |                 } | ||||||
|                 changeToTracks(this.trackType,(this.checked ? value : "none")); |                 changeToTracks(this.trackType,(this.checked ? value : "none")); | ||||||
|               }); |               }); | ||||||
|  |                | ||||||
|  |               MistUtil.event.addListener(MistVideo.video,"playerUpdate_trackChanged",function(e){ | ||||||
|  |                  | ||||||
|  |                 if (e.message.type != type) { return; } | ||||||
|  |                  | ||||||
|  |                 if (e.message.value == "none") { this.checked = false; } | ||||||
|  |                 else { this.checked = true; } | ||||||
|  |                  | ||||||
|  |               },select); | ||||||
|             } |             } | ||||||
|           } |           } | ||||||
|            |            | ||||||
|  | @ -1490,7 +1511,7 @@ MistSkins["default"] = { | ||||||
|              |              | ||||||
|             MistUtil.event.addListener(MistVideo.video,"playerUpdate_trackChanged",function(e){ |             MistUtil.event.addListener(MistVideo.video,"playerUpdate_trackChanged",function(e){ | ||||||
|                |                | ||||||
|               if (e.message.type != type) { return; } |               if ((e.message.type != type) || (e.message.trackid == "none")) { return; } | ||||||
|               select.value = e.message.trackid; |               select.value = e.message.trackid; | ||||||
|               MistVideo.log("Player selected "+type+" track with id "+e.message.trackid); |               MistVideo.log("Player selected "+type+" track with id "+e.message.trackid); | ||||||
|                |                | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Cat
						Cat