respondí mi propia pregunta, la clave es que los controles personalizados están dentro del <div>
que incluye el video que desea tomar a pantalla completa. En mi código a continuación, este <div>
se llama "videoContainer".
Aquí está el enlace que usé para resolver esto. http://developer.apple.com/library/safari/#documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html
aquí está el código JS tanto para entrar y salir del modo de pantalla completa en WebKit y Mozilla navegadores:
var $video=$('video');
//fullscreen button clicked
$('#fullscreenBtn').on('click', function() {
$(this).toggleClass('enterFullscreenBtn');
if($.isFunction($video.get(0).webkitEnterFullscreen)) {
if($(this).hasClass("enterFullscreenBtn"))
document.getElementById('videoContainer').webkitRequestFullScreen();
else
document.webkitCancelFullScreen();
}
else if ($.isFunction($video.get(0).mozRequestFullScreen)) {
if($(this).hasClass("enterFullscreenBtn"))
document.getElementById('videoContainer').mozRequestFullScreen();
else
document.mozCancelFullScreen();
}
else {
alert('Your browsers doesn\'t support fullscreen');
}
});
y aquí está el código HTML:
<div id="videoContainer">
<video>...<source></source>
</video>
<div> custom controls
<button>play/pause</button>
<button id="fullscreenBtn" class="enterFullscreenBtn">fullscreen</button>
</div>
</div>
pero aún así sus controles personalizados se disparó en modo de pantalla completa .. – Sarath
Está bien, creo que por fin me dieron el golpe de eso. Es el contenedor que llevas a pantalla completa, y si el video y los controles personalizados están en ese contenedor, entonces estás bien. Los navegadores también dejarán de molestarte porque no estás tomando un video en pantalla completa y no necesitan saltar y guardar el día con sus controles vacilantes. – Costa