Heim > Web-Frontend > H5-Tutorial > Hauptteil

So implementieren Sie die H5 WeChat-Wiedergabe im Vollbildmodus

php中世界最好的语言
Freigeben: 2018-03-26 14:36:22
Original
3323 Leute haben es durchsucht

Dieses Mal zeige ich Ihnen, wie Sie die H5-WeChat-Wiedergabe im Vollbildmodus implementieren und welche Vorsichtsmaßnahmen es gibt, um die H5-WeChat-Wiedergabe im Vollbildmodus zu implementieren. Hier sind praktische Fälle, werfen wir einen Blick darauf.

Lösung: Fügen Sie dem Video-Tag einige Attribute hinzu und nennen Sie h5 natives Video.

<video
  id="videoALL" 
  src="video/01.mp4" 
  poster="images/1.jpg" /*视频封面*/
  preload="auto" 
  webkit-playsinline="true" /*这个属性是ios 10中设置可以
                     让视频在小窗内播放,也就是不是全屏播放*/  
  playsinline="true"  /*IOS微信浏览器支持小窗内播放*/ 
  x-webkit-airplay="allow" 
  x5-video-player-type="h5"  /*启用H5播放器,是wechat安卓版特性*/
  x5-video-player-fullscreen="true" /*全屏设置,
                     设置为 true 是防止横屏*/>
  x5-video-orientation="portraint" /*播放器支付的方向,
                     landscape横屏,portraint竖屏,默认值为竖屏*/
  style="object-fit:fill">
</video>
Nach dem Login kopieren

poster="images/1.jpg": Das -Attribut gibt das Bild an, das beim Herunterladen des Videos angezeigt wird, bzw. das Bild, das angezeigt wird angezeigt, bevor der Benutzer auf die Wiedergabetaste klickt. Wenn diese Eigenschaft nicht festgelegt ist, wird stattdessen das erste Bild des Videos verwendet.

preload="auto": Das Attribut gibt an, dass das Video nach dem Laden der Seite geladen werden soll.

webkit-playsinline und gamesinline: Das Video wird lokal abgespielt und bricht nicht vom Dokumentenstrom ab. Dieses Attribut ist jedoch etwas ganz Besonderes. Es muss in die Webseite der APP eingebettet werden, z. B. in UIwebview in WeChat, und erlaubt InlineMediaPlayback = YES webview.allowsInlineMediaPlayback = YES, um wirksam zu werden. Mit anderen Worten: Wenn die APP es nicht einrichtet, ist das Hinzufügen dieses Tags zu Ihrer Seite ungültig. Aus diesem Grund spielt WeChat auf Android-Telefonen Videos immer im Vollbildmodus ab, da die APP Playsinline nicht unterstützt, ISO WeChat jedoch.

Ich möchte hier hinzufügen, dass ISO das Tag webkit-playsinline löschen muss, wenn Sie eine Live-Übertragung im Vollbildmodus oder ein H5-Erlebnis im Vollbildmodus durchführen möchten, da es nicht unterstützt wird, wenn Sie es festlegen auf false. Android benötigt es nicht, da der Standard-Vollbildmodus aktiviert ist. Derzeit verfügt der Vollbildmodus jedoch über Wiedergabesteuerelemente, unabhängig davon, ob Sie die Steuerelemente festgelegt haben oder nicht. Diejenigen, die Live-Übertragungen durchführen, benötigen möglicherweise Wiedergabesteuerungen, aber H5 im Vollbildmodus benötigt diese nicht. Um die Steuerungen während der Vollbildwiedergabe zu entfernen, sind die folgenden Einstellungen erforderlich: Wiedergabe auf derselben Ebene.

x-webkit-airplay="allow"Es ist noch nicht genau bekannt, was es tut, aber der Herausgeber vermutet, dass dieses Attribut dafür sorgen sollte, dass dieses Video die AirPlay-Funktion von iOS unterstützt. Mit AirPlay können Sie Videos, Musik und Fotodateien direkt von verschiedenen Orten auf Ihrem iOS-Gerät abspielen. Das heißt, die drahtlose Wiedergabe von Audio- und Videodateien ist natürlich über die AirPlay-Funktion möglich Auch das für die Wiedergabe verwendete Endgerät muss die entsprechenden Funktionen unterstützen.

x5-video-player-type: Aktivieren Sie den H5-Player auf derselben Ebene, d. h. wenn das Video im Vollbildmodus angezeigt wird, kann p auf der Videoebene angezeigt werden ist auch ein einzigartiges Merkmal der WeChat-Android-Version. Der Alias ​​für die Wiedergabe auf derselben Ebene wird auch als immersive Wiedergabe bezeichnet. Beim Abspielen sieht es aus wie im Vollbildmodus, aber die Steuerungs- und WeChat-Navigationsleisten wurden entfernt, sodass nur die Tasten „X“ und „<“ übrig bleiben. Der aktuelle Same-Layer-Player funktioniert nur auf Android (einschließlich WeChat) und unterstützt iOS vorerst nicht. Der Grund, warum die gleiche Ebenenwiedergabe nur für Android möglich ist, liegt daran, dass Android nicht wie ISO lokal abgespielt werden kann. Der Standard-Vollbildmodus blockiert einige Schnittstellenvorgänge. Es ist in Ordnung, wenn es sich um H5 im Vollbildmodus handelt, aber für Live-Übertragungen sind Funktionen wie z als Sperrfeuer Es ist unmöglich zu erreichen, daher löst das Konzept der Wiedergabe auf derselben Ebene dieses Problem derzeit. Beim Test wurde jedoch festgestellt, dass verschiedene Versionen von ISO und Android leicht unterschiedliche Auswirkungen haben.

x5-video-orientation: Deklarieren Sie die vom Player unterstützte Ausrichtung. Die optionalen Werte sind Querformat (horizontaler Bildschirm) und Hochformat (vertikaler Bildschirm). Standardwert Porträt. Unabhängig davon, ob es sich um eine Live-Übertragung oder einen H5-Vollbildmodus handelt, erfolgt die Wiedergabe normalerweise vertikal. Für dieses Attribut ist jedoch x5-video-player-type erforderlich, um den H5-Modus zu aktivieren

x5-video-player-fullscreen: Vollbildeinstellung. Es verfügt über zwei Attributwerte, true und false, unterstützt die Vollbildwiedergabe und false unterstützt nicht die Vollbildwiedergabe.

Tatsächlich ist der ISO-WeChat-Browser der Kern von Chrome und alle zugehörigen Attribute werden unterstützt, weshalb X5 die Wiedergabe auf derselben Ebene nicht unterstützt. Der Android WeChat-Browser verwendet den X5-Kernel und einige Attribut-Tags wie „playsinline“ werden nicht unterstützt, sodass er immer im Vollbildmodus angezeigt wird.

Es gibt ein weiteres Problem, selbst wenn die oben genannten Attribute hinzugefügt werden, gibt es oben und unten schwarze Ränder und der Bildschirm kann nicht im Vollbildmodus angezeigt werden.

Lösung: Fügen Sie dem Video das Stilattribut object-fit:fill; hinzu. Wenn immer noch schwarze Ränder vorhanden sind, ist möglicherweise die Videogröße nicht geeignet.

<p id="videobox">
   <video 
    id="videoALL" 
    src="mp4.mp4" 
    poster="1.jpg" 
    preload="auto" 
    webkit-playsinline="true" 
    playsinline="true" 
    x-webkit-airplay="allow" 
    x5-video-player-type="h5" 
    x5-video-player-fullscreen="true" 
    x5-video-orientation="portraint"
    style="object-fit:fill">
    </video> 
   <p id="btn" onclick="playcontr()"></p>
</p>
<p id="videoend"><p id="againbtn" onclick="playcontr()"></p></p></p>
<pre class="brush:php;toolbar:false">*{
            padding: 0;
            margin: 0;
        }
    #videobox{position: absolute;width: 100%;height: 100%;background-color: green;background-image: url(1.jpg);background-size: 100% 100%;background-position: top;overflow: hidden;}
    #videoALL{
  height: auto;
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  object-fit: fill;
  display: block;
  background-size: cover;
  overflow: hidden;}
    #btn,#againbtn{width: 81px;height: 75px;position: absolute;top: 50%;left:50%;margin-top: -37.5px;margin-left: -40.5px;background-image: url(btn.png);background-size: 100% 100%;}
    #videoend{position: absolute;background-color: pink;display: none;background-image: url(2.jpg);background-size: cover;background-position: top;}
Nach dem Login kopieren
<script>
var videoALL = document.getElementById('videoALL'),
    videobox = document.getElementById('videobox'),
    btn = document.getElementById('btn'),
    videoend =  document.getElementById('videoend');
var clientWidth = document.documentElement.clientWidth;
var clientHeight = document.documentElement.clientHeight;
videoALL.style.width = clientWidth + 'px';
videoALL.style.height = 'auto';
document.addEventListener('touchmove', function(e){e.preventDefault()}, false);
function stylep(pId){
    pId.style.width = clientWidth + 'px';
    pId.style.height = clientHeight +200+ 'px'; 
}
stylep(videobox);
stylep(videoend);
var u = navigator.userAgent; 
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 
function playcontr(){
    if (isAndroid) {
       videoALL.style.width = window.screen.width + 'px';
       videoALL.style.height = window.screen.height + 'px'; 
    }
    videobox.style.display = "block";
    videoALL.play();
    btn.style.display = "none";
    videoend.style.display = "none";
};
videoALL.addEventListener('pause',function(){  
    videoALL.style.width = clientWidth + 'px';
    btn.style.display = "block";
})  
videoALL.addEventListener("ended",function(){
    videoALL.pause();
    videobox.style.display = "none";
    videoend.style.display = "block";
});
</script>
Nach dem Login kopieren

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln zum Thema PHP chinesische Website!

Empfohlene Lektüre:

Ausführliche Erklärung der H5-Speichermethode

zepto ermöglicht nahtloses Auf- und Abscrollen auf dem mobilen Endgerät

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die H5 WeChat-Wiedergabe im Vollbildmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!