Eine Änderung der Ausrichtung führt dazu, dass das Video geschlossen wird, wenn HTML5-Videos auf Safari iOS abgespielt werden
<p>Ich rendere ein Video mit React und dem HTML5-Tag <code><video></code> und wenn ich die Website auf meinem iPhone öffne, wird das Video im nativen iOS-Safari-Videoplayer abgespielt. Wenn ich jedoch die Ausrichtung ändere, um das Video im Querformat anzusehen, wird das Video ausgeschaltet. Muss ich eine Konfiguration des HTML5-Video-Tags implementieren? Oder ist das ein Problem mit meinem React-Rendering? </p>
<p>Zum besseren Verständnis entwickle ich einen Algorithmus-Visualizer, der derzeit auf Mobilgeräten nicht unterstützt wird. Deshalb verwende ich einige Medienabfragen, um ein Modal anzuzeigen, das den Benutzer anweist, einen größeren Bildschirm zu verwenden, wenn er die Seite auf einem mobilen Gerät öffnet. Im Modal habe ich ein Demovideo für die Website, sodass ich möchte, dass die Leute das Video auf Mobilgeräten korrekt ansehen können, ohne das Video erneut öffnen zu müssen, wenn sich die Ausrichtung nach dem Abspielen ändert. </p>
<p>Ich habe einige Probleme mit Medienabfragen, bei denen beim Wechsel in den Querformatmodus auf Mobilgeräten das Modal verschwindet und der Visualizer versucht, zu rendern, da ich nur eine Abfrage mit maximaler Breite verwende. Deshalb habe ich stattdessen auch die Medienabfrage mit maximaler Höhe implementiert. Könnte das das Problem sein? </p>
<p>Bearbeiten mit Beispiel: </p>
<pre class="brush:php;toolbar:false;">const Video = ({ src }) =>
zurückkehren (
<Video steuert width="100%" preload="auto">
<source src={src} type="video/mp4"
Ihr Browser unterstützt kein HTML5-Video.
</video>
)
}
const App = () =>
// Medienabfragen mit ChakraUI-Hooks
const [wIsSmallerThan48em] = useMediaQuery("(max-width: 48em)");
const [hIsSmallerThan30em] = useMediaQuery("(max-height: 30em)");
// „Falsches“ modales Rendern sowohl im Hoch- als auch im Querformat auf Mobilgeräten
if (wIsSmallerThan48em || hIsSmallerThan30em){
zurückkehren (
<Modal>
<Video src={MyVideo} />
</Modal>
)
} anders {
zurückkehren (
<Visualizer />
)
}
}</pre></p>