2012-05-23 8 views
15

Ich entwerfe eine html5-Seite für Android 4 Smartphones mit einem einzigen 3gpp (oder mp4) Video, das beim Öffnen automatisch Vollbild anzeigen muss; wenn das Video endet, sollte es auf eine andere URL umgeleitet werden.html5 Video auf Android 4: Vollbild abspielen dann auf eine andere Webseite umleiten - funktioniert nicht

Einige googeln sagte mir, dass Autoplay nicht mehr auf Android 4 erlaubt ist, also habe ich ein Posterbild angezeigt, auf das der Benutzer klicken muss, um das Video zu starten. Dann:

  1. Vollbild-Modus wird
  2. aufgerufen
  3. Video automatisch (wurde in der Tat begonnen, durch Benutzer durch Klick auf Plakatbild)
  4. wenn Video-Finish sollte Android zu spielen
  5. Vollbild verlassen beginnen sollte und schließlich umleiten Benutzer zu einer anderen Seite.

2 und 3 funktionieren nicht: nach dem Vollbild-Aufruf der Benutzer das andere tun „klicken Sie auf“ Video starten und wenn das Video endet exitfullscreen nicht funktioniert (Bildschirm ist schwarz und Benutzer haben „Zurück“ -Taste auf die drücken Telefon, um den Videoplayer des Telefons zu verlassen).

Sieht aus wie video.webkitExitFullScreen() und video.play() auf Android ignoriert 4.

Dies ist html5 Markup und JavaScript-Code, den ich verwenden, können Sie bitte helfen Sie mir zu einer Lösung zeigen?

Danke!

<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width; initial-scale=1.0" /> 
    <meta name="description" content="" /> 
    <title>test</title> 

    <script type="text/javascript"> 

     function videoEnd() { 
      var video = document.getElementById("video"); 
      video.webkitExitFullScreen(); 
      document.location = "http://www.google.com"; 
     } 

     function playVideo() { 
      var video = document.getElementById("video"); 
      video.addEventListener('ended', videoEnd, false); 
      video.webkitEnterFullScreen(); 
      video.play(); 
     } 

    </script> 
</head> 
<body> 
    <video id="video" poster="../img/image.jpg" onclick="playVideo();"> 
     <source src="../video/videoname.3gp" type="video/3gpp" /> 
    </video> 
</body> 
+0

video.webkitEnterFullScreen(); Hat dies auf Android 4.1 für Sie funktioniert? Ich bezweifle das. –

Antwort

0

Ich hatte vor kurzem ein ähnliches Problem. Nach Stunden der Suche im Internet, hier ist, wie ich es gemacht habe:

Bevor Sie die "play()" Methode aufrufen, verwenden Sie die "load()" Methode. Also in Ihrem Code:

function playVideo() { 
     var video = document.getElementById("video"); 
     video.addEventListener('ended', videoEnd, false); 
     video.webkitEnterFullScreen(); 
     video.load(); 
     video.play(); 
    } 

Ich, ve teste auf Android 2.2, 2.3 und IPhone 3 und es funktioniert. Es scheint jedoch nicht auf Android 4.0 zu spielen.

P.S.

Wenn Sie umleiten möchten, wenn das Video Verwendung dieses Ereignis beendet spielen:

var video = document.getElementById("video"); 
video.addEventListener("ended",doSomething,true); 

function doSomething() { 
    //your redirect code here 
} 
+2

Danke. Leider muss ich es auf Android 4 zu arbeiten. – guidobras

1

ich einen Vorschlag haben, die Ihnen helfen könnten,

Dies wird für die Android-Webansicht Anwendung anwendbar nicht android Internetanwendung.

Sie können entweder den Android-Hook-Up oder den Android-Web-View-Client erstellen, die Werte als Variable übergeben (Query String) und das Video von Android aus abspielen, wo Sie alle Kontrolle haben.

Hier finden Sie den Code für die Wiedergabe des Videos.

enter code here 

public void videoPlayer(String path, String fileName, boolean autoplay){ 
getWindow().setFormat(PixelFormat.TRANSLUCENT); 
//the VideoView will hold the video 
VideoView videoHolder = new VideoView(this); 
//MediaController is the ui control howering above the video (just like in the default youtube player). 
videoHolder.setMediaController(new MediaController(this)); 
//assing a video file to the video holder 
videoHolder.setVideoURI(Uri.parse(path+"/"+fileName)); 
//get focus, before playing the video. 
videoHolder.requestFocus(); 
if(autoplay){ 
    videoHolder.start(); 
} 

}

Wenn Sie Art von Brightcove implementieren möchten dann kontaktieren Sie mich ich für die HTML-Hilfe wird 5

Prost

0

Es späteren Versionen von Android scheint, programmatische video.play() erfordert eine ausdrückliche Genehmigung von WebView.

zB

settings.setMediaPlaybackRequiresUserGesture(false);

1

Ich weiß, das ist eine alte Post, aber jemand dafür suchen kann. Persönlich verberge ich einfach das Video-Element (mit einem einfachen jquery $ videoElement.hide()) nachdem das Video beendet ist, was mich automatisch zum Browser zurückbringt.

Wir haben dies auf mehreren mobilen Geräten (iOS und Android) getestet.

Ich habe immer noch ein anderes Problem, das ist, dass jetzt mein Browser Vollbild zu sein scheint (was andere Probleme in meinem Fall verursacht).

+0

Zusätzlich zu den oben genannten: Nach einigem Googeln fand ich heraus, dass das Problem mit Fullscreen-Problem wie folgt ist: Versteckt das Video-Element bringt mich tatsächlich aus dem Videoplayer auf die Browser. Android sagt jedoch, dass - um den Vollbildmodus zu beenden - eine Benutzeraktion erforderlich ist (Wischen von oben nach unten). Deshalb bleibt der Browser im Vollbildmodus. Ich habe keine Lösung dafür gefunden. Da Android so funktioniert, haben wir entschieden, dass der Nutzer nach Ende des Videos Maßnahmen ergreifen muss, um das Video zu verlassen und zur Website zurückzukehren. – vrijdenker

Verwandte Themen