2012-05-23 22 views
15

我正在爲Android 4智能手機設計一個帶有單個3gpp(或mp4)視頻的html5頁面,該視頻必須在打開時自動播放全屏;當視頻結束時應該重定向到另一個網址。Android 4上的html5視頻:播放全屏,然後重定向到另一個網頁 - 不工作

一些Google使用者告訴我,Android 4不再允許自動播放,因此我選擇顯示用戶必須單擊才能開始播放視頻的海報圖片。 然後:

  1. 全屏模式時調用
  2. 視頻會自動啓動 (的確是由在海報圖像用戶點擊開始)
  3. 當視頻完成播放的Android應該退出全屏
  4. 最後重定向用戶到另一頁面。

2和3不工作:調用全屏之後用戶必須做的另一個「點擊」開始視頻,當視頻結束exitfullscreen不起作用(屏幕是黑色的,用戶必須按「返回」鍵電話退出手機的視頻播放器)。

貌似video.webkitExitFullScreen()video.play()是在Android 4

這忽視的是HTML5標記和我使用的JavaScript代碼,你可以請幫忙指點我的解決方案?

謝謝!

<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();在Android 4.1上爲您工作?我對此表示懷疑。 –

回答

0

我最近有一個類似的問題。經過幾個小時的搜索網絡,這裏是我如何使它的工作:

在調用「play()」方法之前,使用「load()」方法。所以在你的代碼:

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

我;我測試了Android 2.2,2.3和iPhone 3,它的工作原理。但它似乎並沒有在Android 4.0上播放。

P.S.

如果你想重定向當影片播放完畢後使用此事件:

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

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

謝謝。不幸的是我需要它在Android 4 – guidobras

1

我有一些建議,這可能會幫助你,

這將是適用於Android的Web視圖應用不是機器人Web應用程序。

您可以創建android掛鉤或android web視圖客戶端,將值作爲變量(查詢字符串)傳遞並從Android本地播放視頻,您可以在其中控制所有內容。

請查看播放視頻的代碼。

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(); 
} 

}

如果你想實現一種明亮的海灣再聯繫我,我會幫助爲HTML 5

乾杯

0

似乎在android系統的後續版本,程序video.play()需要WebView的明確授權。例如

settings.setMediaPlaybackRequiresUserGesture(false);

1

我知道這是舊的文章,但有人可能會尋找這一點。 個人而言,我只是在視頻播放結束後隱藏了視頻元素(帶有一個簡單的jquery $ videoElement.hide()),這會讓我自動回到瀏覽器。

我們已經在多個移動設備(iOS和Android)上測試了這一點。

我仍然有另一個問題,但現在我的瀏覽器似乎是全屏(這在我的情況下導致其他問題)。

+0

工作,除了上面: 一些谷歌搜索後,我發現,與全屏問題的問題如下: 隱藏視頻元素確實讓我想起從錄像機到瀏覽器。 Android雖然說 - 爲了退出全屏模式 - 需要用戶操作(從上到下滑動)。這就是瀏覽器保持全屏模式的原因。 我還沒有找到任何修復。由於這是Android的工作原理,因此我們決定在視頻播放完成後,用戶必須採取行動才能離開視頻並返回網站。 – vrijdenker

相關問題