2012-07-10 33 views
5

Sto creando un sito per cellulari in cui ho un video mi piacerebbe giocare quando un utente fa clic su un link:per giocare a schermo intero con Android

<div id="player"></div> 
<a href="#" onclick="DoNav('<?php echo $url; ?>');" title="Click to play video"> <?php echo $result_videos[$i]["camera_name"]; ?> </a> 

<script type="text/javascript"> 
function DoNav(theUrl) 
{ 

    // only add the player if it doesn't yet exist 
    if($('#myfileplayer').length == 0) { 
    var mydiv = $("#player"); 
    var myvideo = $("<video id='myfileplayer' src='"+ theUrl + "' width='320' height='240' controls></video>"); 
    mydiv.append(myvideo); 
    } else { 
    $('#myfileplayer').attr("src",theUrl); 
    } 

} 
</script> 

Con l'iPhone, questo funziona ottimo, clicco sul video e va a schermo intero. Anche Android funziona, ma richiede di fare clic sul video per giocare, quindi fare clic su schermo intero. È possibile arrivare a tutto schermo come iPhone solo quando premi Play?

+0

Cosa fa sull'androide? – Grinn

+0

Una volta colpito, rimane la dimensione del player che specifichi con i parametri height/width (che mi servono per poter tornare allo stesso video). Puoi fare di nuovo clic per andare a schermo intero dai controlli, ma spero di arrivare a schermo intero immediatamente come iPhone. – Tom

+0

Il modello di sicurezza del browser non ti permetterà di andare a schermo intero sugli eventi "play" o "playing". Devi usare "click". Tuttavia, non tutti gli eventi relativi ai clic determinano la riproduzione del video. Quindi, nel gestore dei clic si desidera controllare video_tag.paused === false e chiamare video_tag.webkitRequestFullScreen() –

risposta

0

ho rinunciato a questo. La mia conclusione è che il tag video HTML5 sui dispositivi Android soffia blocchi. Funziona su alcuni dispositivi ma non su altri. E non ci sono criteri comuni come 3.x o 4.x, sembra solo casuale. Spero che questo migliori presto, specialmente dal momento che il supporto flash non è più disponibile.

Stranamente attaccare con un semplice href sembra essere il più coerente. Perdi alcuni controlli ma molto meglio del tag video ... almeno finora.

+0

Questo post supporta la tua conclusione: http://stackoverflow.com/questions/15768837/playing-html5-video-on-fullscreen-in-android-webview – Nilzor

1

Avete controllato mediaelement.js?

+0

L'ho controllato e non funziona nemmeno su Android Kitkat 4.4 –

0

provare qualcosa sulla falsariga di:

document.getElementById('myfileplayer').addEventListener('play', function (e) { this.mozRequestFullScreen ? this.mozRequestFullScreen() : this.webkitRequestFullScreen ? this.webkitRequestFullScreen() : null; }, false); 

Uno che o forse qualcosa sulla falsariga di:

document.getElementById('myfileplayer').addEventListener('play', function (e) { this.webkitEnterFullscreen(); }, false); 

webkitEnterFullscreen è il metodo a tutto schermo di un elemento VIDEO che sta attualmente lavorando su iOS . Non sono sicuro del supporto sui dispositivi Android.

mozRequestFullScreen e webkitRequestFullScreen sono implementazioni di Mozilla e l'API FullScreen di Google che viene utilizzata per attivare la modalità a schermo intero praticamente su qualsiasi elemento DOM.

Speriamo che ti dà almeno un punto di partenza su cui lavorare ...

+0

grazie. Questo sembra qualcosa da cui iniziare. Ho fatto un rapido tentativo con quello che hai postato ma non ha funzionato, sembra che abbia qualche ricerca da fare. – Tom

0

La maggior parte dei fornitori richiede l'interazione dell'utente per andare a schermo intero, motivo per cui la risposta di natalee non funziona. Per Andriod, è possibile chiamare webkitEnterFullScreen() all'interno del gestore di clic del vostro ancoraggio in quanto si tratta di un'interazione utente valido:

myvideo[0].webkitEnterFullScreen(); 
    myvideo[0].play(); 

o

$('#myfileplayer')[0].webkitEnterFullScreen(); 
    $('#myfileplayer')[0].play(); 

nota come sto nudo involucro di jQuery con [0]. Non funziona diversamente.

4

questo dovrebbe funzionare, con la pianura Javascript:

var myVideo = document.getElementById('myVideoTag'); 

myVideo.play(); 
if (typeof(myVideo.webkitEnterFullscreen) != "undefined") { 
    // This is for Android Stock. 
    myVideo.webkitEnterFullscreen(); 
} else if (typeof(myVideo.webkitRequestFullscreen) != "undefined") { 
    // This is for Chrome. 
    myVideo.webkitRequestFullscreen(); 
} else if (typeof(myVideo.mozRequestFullScreen) != "undefined") { 
    myVideo.mozRequestFullScreen(); 
} 

si deve innescare play() prima che l'istruzione a schermo intero, tuttavia in Android Browser sarà solo andare a schermo intero, ma non si inizia a giocare. Testato con l'ultima versione di Android Browser, Chrome, Safari.

Problemi correlati