Index: chrome/browser/resources/mediaplayer.html |
diff --git a/chrome/browser/resources/mediaplayer.html b/chrome/browser/resources/mediaplayer.html |
index 3a95e5a43bc5929dc7fc8ee033ae29895ee8de04..76271cb778f9ef72006d16876cf430645d0daef0 100644 |
--- a/chrome/browser/resources/mediaplayer.html |
+++ b/chrome/browser/resources/mediaplayer.html |
@@ -115,8 +115,16 @@ body { |
border-right: 1px solid black; |
} |
-.soundicon { |
+.soundiconhigh { |
background: url('../../app/theme/mediaplayer_vol_high.png'); |
+} |
+ |
+.soundiconmuted { |
+ background: url('../../app/theme/mediaplayer_vol_mute.png'); |
+} |
+ |
+.soundiconhigh, |
+.soundiconmuted { |
background-repeat: no-repeat; |
background-position: 6px 8px; |
} |
@@ -250,7 +258,7 @@ body { |
.playlisticon { |
background: url('../../app/theme/mediaplayer_playlist.png'); |
background-repeat: no-repeat; |
- background-position: 6px 8px; |
+ background-position: 6px 8px; |
} |
.controlbutton { |
@@ -290,12 +298,14 @@ function $(o) { |
*/ |
function load() { |
chrome.send('getCurrentPlaylist', []); |
-}; |
+} |
var videoPlaybackElement = null; |
var audioPlaybackElement = null; |
var currentPlaylist = null; |
var currentItem = -1; |
+var savedVolumeValue = 0; |
+var hideVolumeTimerId = 0; |
function onMediaProgress() { |
var element = getMediaElement(); |
@@ -308,7 +318,7 @@ function onMediaProgress() { |
if (progress.value == 100) { |
onMediaComplete(); |
} |
-}; |
+} |
function onLoadedProgress(e) { |
var element = $('sliderloaded'); |
@@ -319,12 +329,12 @@ function onLoadedProgress(e) { |
} else { |
element.style.display = 'none'; |
} |
-}; |
+} |
function onMediaError(e) { |
chrome.send('playbackError', ['Error playing back']); |
onMediaComplete(); |
-}; |
+} |
function onMediaComplete() { |
currentItem ++; |
@@ -347,21 +357,21 @@ function onMediaComplete() { |
chrome.send('currentOffsetChanged', ['' + currentItem]); |
playMediaFile(currentPlaylist[currentItem].path); |
-}; |
+} |
function onMediaPlay() { |
var pausebutton = $('pausebutton'); |
var playbutton = $('playbutton'); |
pausebutton.style.display = 'block'; |
playbutton.style.display = 'none'; |
-}; |
+} |
function onMediaPause() { |
var pausebutton = $('pausebutton'); |
var playbutton = $('playbutton'); |
playbutton.style.display = 'block'; |
pausebutton.style.display = 'none'; |
-}; |
+} |
function setupMediaEvents(element) { |
element.addEventListener("progress", onLoadedProgress, true); |
@@ -371,7 +381,7 @@ function setupMediaEvents(element) { |
element.onerror = onMediaError; |
element.addEventListener("play", onMediaPlay, true); |
element.addEventListener("pause", onMediaPause, true); |
-}; |
+} |
function getMediaElement() { |
var mediaElement; |
@@ -381,7 +391,7 @@ function getMediaElement() { |
mediaElement = audioPlaybackElement; |
} |
return mediaElement; |
-}; |
+} |
function playPauseButtonClick() { |
var mediaElement = getMediaElement(); |
@@ -390,7 +400,7 @@ function playPauseButtonClick() { |
} else { |
mediaElement.pause(); |
} |
-}; |
+} |
function prevButtonClick() { |
var element = getMediaElement(); |
@@ -405,7 +415,7 @@ function prevButtonClick() { |
} |
chrome.send('currentOffsetChanged', ['' + currentItem]); |
playMediaFile(currentPlaylist[currentItem].path); |
-}; |
+} |
function nextButtonClick() { |
currentItem ++; |
@@ -415,7 +425,7 @@ function nextButtonClick() { |
} |
chrome.send('currentOffsetChanged', ['' + currentItem]); |
playMediaFile(currentPlaylist[currentItem].path); |
-}; |
+} |
function userChangedProgress() { |
var val = $('progress').value; |
@@ -424,22 +434,54 @@ function userChangedProgress() { |
var current = (progress.value * element.duration)/100; |
element.currentTime = current; |
} |
-}; |
+} |
-function toggleVolumeVisible() { |
- var volume_div = $('volume'); |
- if (volume_div.style.display == 'none') { |
- volume_div.style.display = 'block'; |
- } else { |
- volume_div.style.display = 'none'; |
+function changeVolumeVisibility(visible) { |
+ var volume = $('volume'); |
+ volume.style.display = visible ? 'block' : 'none'; |
+} |
+ |
+function showVolume() { |
+ if (hideVolumeTimerId) { |
+ clearTimeout(hideVolumeTimerId); |
+ hideVolumeTimerId = 0; |
} |
-}; |
+ |
+ changeVolumeVisibility(true); |
+} |
+ |
+function hideVolume() { |
+ if (!hideVolumeTimerId) |
+ hideVolumeTimerId = setTimeout('changeVolumeVisibility(false)', 500); |
+} |
function volumeChange() { |
var volumeslider = $('volumeslider'); |
var element = getMediaElement(); |
element.volume = (volumeslider.value/100); |
-}; |
+ |
+ var soundicon = $('soundicon'); |
+ soundicon.className = soundicon.className.replace( |
+ /soundicon.*/, |
+ element.volume > 0 ? 'soundiconhigh' : 'soundiconmuted'); |
+} |
+ |
+function muteVolume(mute) { |
+ var volumeslider = $('volumeslider'); |
+ var element = getMediaElement(); |
+ if (mute) { |
+ savedVolumeValue = volumeslider.value; |
+ volumeslider.value = 0; |
+ volumeChange(); |
+ } else { |
+ volumeslider.value = savedVolumeValue; |
+ volumeChange(); |
+ } |
+} |
+ |
+function toggleVolumeMute() { |
+ muteVolume($('volumeslider').value != 0); |
+} |
function setupPlaybackControls() { |
var element = $('playercontrols'); |
@@ -523,9 +565,12 @@ function setupPlaybackControls() { |
var soundbutton = document.createElement('div'); |
soundbutton.id = 'soundbutton'; |
soundbutton.className = controlsclass + ' controlbutton soundbutton'; |
- soundbutton.onclick = toggleVolumeVisible; |
+ soundbutton.onclick = toggleVolumeMute; |
+ soundbutton.onmouseover = showVolume; |
+ soundbutton.onmouseout = hideVolume; |
var soundicon = document.createElement('div'); |
- soundicon.className = 'icon soundicon'; |
+ soundicon.id = 'soundicon'; |
+ soundicon.className = 'icon soundiconhigh'; |
soundbutton.appendChild(soundicon); |
element.appendChild(soundbutton); |
@@ -540,8 +585,10 @@ function setupPlaybackControls() { |
var volume = document.createElement('div'); |
volume.id = 'volume'; |
- volume.className = controlsclass + ' controlbutton volume'; |
+ volume.className = controlsclass + ' volume'; |
volume.style.display = 'none'; |
+ volume.onmouseover = showVolume; |
+ volume.onmouseout = hideVolume; |
var volumeslider = document.createElement('input'); |
volumeslider.type = 'range'; |
volumeslider.id = 'volumeslider'; |
@@ -549,12 +596,13 @@ function setupPlaybackControls() { |
volumeslider.onchange = volumeChange; |
volume.appendChild(volumeslider); |
document.body.appendChild(volume); |
+ volumeChange(); |
var duration = document.createElement('div'); |
duration.id = 'duration'; |
duration.className = 'duration'; |
element.appendChild(duration); |
-}; |
+} |
function playAudioFile(uri) { |
if (videoPlaybackElement != null) { |
@@ -577,11 +625,11 @@ function playAudioFile(uri) { |
audioPlaybackElement.load(); |
audioPlaybackElement.play(); |
} |
-}; |
+} |
function toggleFullscreen() { |
chrome.send('toggleFullscreen', ['']); |
-}; |
+} |
function onMetadataAvail() { |
var element = getMediaElement(); |
@@ -591,7 +639,7 @@ function onMetadataAvail() { |
var durDiv = $('duration'); |
durDiv.textContent = durString; |
} |
-}; |
+} |
function playVideoFile(uri) { |
if (audioPlaybackElement != null) { |
@@ -620,14 +668,14 @@ function playVideoFile(uri) { |
videoPlaybackElement.load(); |
videoPlaybackElement.play(); |
} |
-}; |
+} |
function stopAllPlayback() { |
var element = getMediaElement(); |
if (element != null) { |
element.pause(); |
} |
-}; |
+} |
function playlistChanged(info, playlist) { |
if (info.force) { |
@@ -665,11 +713,11 @@ function playlistChanged(info, playlist) { |
} |
} |
} |
-}; |
+} |
function togglePlaylist() { |
chrome.send("togglePlaylist", []); |
-}; |
+} |
function playMediaFile(url) { |
if (pathIsVideoFile(url) ) { |
@@ -679,7 +727,7 @@ function playMediaFile(url) { |
} else { |
alert('file unknown'); |
} |
-}; |
+} |
</script> |
<body onload='load();' onselectstart='return false'> |