簡體   English   中英

Web App - iPad webkitEnterFullscreen - 以編程方式進行全屏視頻

[英]Web App - iPad webkitEnterFullscreen - Programatically going full-screen video

http://sandbox.solutionsbydesign.com/i-screenplay/h5/

以上是我從Apple下載的示例,您可以使用控件進行播放和全屏模式。 在Safara / iPad中,它非常棒。 然而,我想要做的是讓人們點擊鏈接,然后加載視頻,然后進入全屏模式。 因此,例如在上面的鏈接上,如果加載點完成后,它進入全屏,這將是完美的。

http://developer.apple.com/library/safari/#documentation/AudioVideo/Reference/HTMLVideoElementClassReference/HTMLVideoElement/HTMLVideoElement.html有關於此的更多信息。

我能做到最好的就是這個。

設置您的視頻標簽並使用CSS將其放置在屏幕的某個位置(它不能設置為display:none)。 我使用絕對定位將其移出屏幕的左上角。

然后使用這個JS:

$('.popup.ipad a').click(function() {

        var currentID = $(this).closest('.player').find('video').attr('id');
        var videoContainer = document.getElementById(currentID);
        var newSrc = $(this).attr('href');

        videoContainer.src = newSrc;
        videoContainer.webkitEnterFullscreen();
        videoContainer.play();
});

它將在Fullscreen中播放很棒,但是當用戶點擊“完成”退出視頻時,將繼續播放屏幕(這樣您就會聽到音頻)。

因此,我需要弄清楚如何觸摸觸發“完成”時觸發的事件(我甚至不確定是否存在此事件)。 或者,使用此處描述的方法並每秒運行一次以查看是否正在使用全屏模式。 但是我沒有取得多大成功,無論我做什么我都會得到錯誤。

希望這可以幫助您找到一些答案。 如果是這樣,請告訴我!

秘訣是,在加載視頻元數據之前,您無法進入全屏模式。 Apple文檔指出:

如果加載元數據或者未觸發loadedmetadata事件,並且文件是僅音頻的,則此屬性[ webkitSupportsFullscreen ]也為false。

因此,要在正確的時間觸發全屏,只需為loadedmetadata事件創建一個事件偵聽器:

videoContainer.addEventListener('loadedmetadata', function() {
    if (videoContainer.webkitEnterFullscreen) {
        videoContainer.webkitEnterFullscreen();
    }
});

有了這個,您應該能夠以編程方式在iOS上添加和播放全屏視頻,無論您是使用Drew提到的“屏幕外”視頻容器還是通過動態添加視頻標簽。

我認為你的問題是試圖強制非用戶調用全屏,這是行不通的。 用戶必須通過按鈕點擊等來調用全屏請求。等待視頻加載然后進入全屏是不一樣的。

@Drew Baker這是我昨晚做全屏的帖子: http//johncblandii.com/2011/07/html5-video-fullscreen.html

我也一直在研究這個問題。 嘗試通過單擊按鈕使視頻以全屏模式播放。

我可能做錯了,但這就是我如何讓它為我工作(在ipad air,iphone 5,galaxy 3,nexus 7 ......除了ipad 2之外的一切,視頻不會全屏,但是它會玩)

要播放視頻,您必須讓用戶直接點擊某些內容。 每次我使用JQUERY時,它都無法在iOS設備上運行。 我認為iOS對於遠離直接點擊非常敏感所以,你將onclick處理程序直接放在你希望它們點擊的項目上,如下所示:

<div onclick='openAndPlay(event);' id='video_layover' ></div>

function openAndPlay(event) { 

    myvideo.play();
    myvideo.webkitEnterFullscreen();

    return false;
}

我發現訂單很重要。 首先是播放,然后是全屏請求。 嘗試一下,看看它是否適合你。 可能沒有必要返回false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM