2013-05-22 2 views
6

Sto adattando il mio lavoro di commutazione di risoluzione per Vidcaster su VideoJS in un plug-in (vedere https://github.com/videojs/video.js/pull/233).I controlli nativi di VideoJS 4 ora sono predefiniti su dispositivi mobili?

In VideoJS 3.2 i controlli VideoJS erano attivi su piattaforme mobili come Android e iOS. Ora quando avvio la versione 4 sembra che i controlli nativi abbiano la precedenza. Ciò significa che le funzionalità che richiedono azioni sui pulsanti della barra di controllo come le tracce, ecc. Non sono accessibili, corrette?

Vorremmo continuare a presentare un pulsante di commutazione della risoluzione per i nostri utenti mobili. La decisione di rimandare ai nativi è stata una scelta filosofica intenzionale? In tal caso, dove nel codice si verifica questa decisione? Lo sto scavando da un po 'adesso.

Molto apprezzato.

risposta

11

In base allo source i controlli nativi sono predefiniti su iOS e Android "finché i controlli non sono più stabili su tali dispositivi".

<video data-setup='{"customControlsOnMobile": true}' … abilitare i controlli video.js, ma tenere presente che sono disabilitati per un motivo.

Aggiornamento: Questa domanda e risposta riguardano video.js 4. Per video.js 5 l'equivalente è nativeControlsForTouch: false. I comandi nativi vengono sempre utilizzati su iPhone e versioni precedenti di Android note per essere problematiche con i controlli personalizzati.

+0

Ah, questa opzione è stata aggiunta dopo aver clonato il repository quindi non l'ho trovato. Anche se sembra la risposta giusta, questa opzione da sola non sembra fare nulla, almeno su iOS. Dovrò passare più tempo a giocare con le opzioni e a leggere la fonte. È possibile che VideoJS non supporti i menu di rendering sul dispositivo mobile al momento. – onyxrev

+2

La mia configurazione dei dati era in realtà un JSON non valido (cito sempre le chiavi!), Quindi le opzioni non sono mai state analizzate correttamente. Hai ragione - questo abilita i controlli di VideoJS sui dispositivi mobili. – onyxrev

5

Attualmente l'opzione per inizializzare un video che visualizzerà i controlli personalizzati di videojs e non i controlli nativi (ad esempio iOS) è nativeControlsForTouch: false. Può essere trovato nella fonte here. Questa opzione può essere impostata come indicato nella risposta sopra tramite <video data-setup='{"nativeControlsForTouch": false}' … o tramite JavaScript: vjs('video_id', {nativeControlsForTouch: false});

+0

Grazie per questo @jweilder. Non sapevo di questa funzione. Testato tramite Browserstack utilizzando Video.js v4.5.1. Ecco cosa ho trovato: ** iOS 7 + ** Works. ** iOS 5.0 - 6.0 ** Funziona, ma il ricaricamento della pagina riporta i controlli nativi. Immagino che i controlli nativi vengano mostrati di nuovo su una pagina della pagina presumendo che siano memorizzati nella cache dal browser. ** iOS 4.3.2 e successivi ** Non funziona. – Derek