2012-01-25 44 views
12

Tôi đang xây dựng một trang web có nhiều yếu tố <video> (hoạt ảnh được lặp) hoạt động như một phần thiết kế của tôi (không phải là video thực). Điều này hoạt động khá tốt trong các trình duyệt trên máy tính để bàn, nhưng tôi gặp sự cố trên thiết bị di động.
Khi tôi hiển thị trang web trên thiết bị Android hoặc iOS (ví dụ: webkit di động), tôi sẽ có giao diện trình phát video của hệ điều hành và video sẽ mở trong một số loại cửa sổ bật lên khi tôi nhấp vào chúng. Tôi biết rằng tôi có thể bỏ qua những hạn chế autoplay bằng cách làm sth như:Hành vi video HTML5 trên thiết bị di động

window.onload = function() { 
    var pElement = document.getElementById("myVideo"); 
    pElement.load(); 
    pElement.play(); 
}; 

Nhưng điều này sẽ một lần nữa mở video (s) trong một cửa sổ riêng biệt ...

Có ai biết của một khả năng mô phỏng/kích hoạt hành vi giống như trên máy tính để bàn trên thiết bị di động? Cảm ơn!

EDIT: Markup là cơ bản <video> -syntax btw:

<video autoplay loop> 
    <source src="vid.mp4" type="video/mp4" /> 
    <source src="vid.ogg" type="video/ogg" /> 
    <source src="vid.webm" type="video/webm" /> 
</video> 
+0

Bạn có thể vui lòng dán mã html cho thẻ video mà bạn đang sử dụng không? –

+0

@ andriy.budzinskyy Đã thêm đánh dấu. – m90

Trả lời

11

Hmm, tôi không chắc chắn về Android nhưng iOS devices can't run multiple video streams simultaneously:

Nhiều đồng thời âm thanh hoặc Video Streams

Hiện tại, tất cả các thiết bị chạy iOS đều giới hạn phát lại một luồng âm thanh hoặc video đơn lẻ bất kỳ lúc nào. Phát nhiều video — bên cạnh bên, chồng chéo một phần hoặc chồng chéo hoàn toàn — hiện không được hỗ trợ trên thiết bị iOS. Phát nhiều luồng âm thanh đồng thời cũng không được hỗ trợ. Tuy nhiên, bạn có thể thay đổi nguồn âm thanh hoặc video . Xem “Thay thế nguồn phương tiện theo tuần tự” cho chi tiết .

+0

Bạn có biết có khả năng "lừa" trình giữ chỗ cho một video không? – m90

+0

Tôi đã thử một cái gì đó tương tự và không bao giờ có thể làm việc xung quanh giới hạn này. – j08691

+0

Tôi nghĩ rằng ios không thích tự động phát hoặc vòng lặp vì băng thông của người dùng. Thật khó để có được một tệp âm thanh để phát trong nền theo cách trình duyệt hoạt động. Tôi không thực sự biết một cách giải quyết nhưng sẽ được quan tâm. – Blynn

1

Không, thiết bị Android hoặc iOS (ví dụ: webkit di động) không thể chạy video theo ý muốn. Video sẽ mở trong trình phát video mặc định của thiết bị.

1

YouTube sử dụng mov hoặc mp4 với ios để tải giao diện gốc cho video hoặc liên kết tới ứng dụng của họ để phát video vì video được cài đặt trên mọi thiết bị ios.

+0

Đó là một điểm thú vị, không bao giờ nghĩ đến việc xem làm thế nào "những người lớn" xử lý này. Tuy nhiên, video trên YouTube và vimeo trên web cũng sẽ mở trong trình phát bên ngoài, có thể xem video YouTube nội tuyến trên iOS không? – m90

1

Tại sao bạn cần windows.onload để bỏ qua tự động phát? Nếu tôi nhớ đã đặt chính xác thẻ preload thành không

<video src="vid.mov" preload=”none”></video> 

sẽ hoạt động.

Ngoài ra, bạn đã thử sử dụng phương pháp Video For Everybody chưa? Với đó sẽ có thể để có được video để chơi trong trang web chứ không phải bởi hệ điều hành của điện thoại, theo cách đó tôi tin rằng bạn có thể đạt được hiệu ứng tương tự trên các thiết bị được hỗ trợ.

EDIT: Liên quan đến j08691's answer, một cách tiếp cận thay thế cho iPhone có thể thiết kế một ứng dụng xem web đơn giản cho các trang web dành cho iPhone trong đó có một workaround cho video chơi Vấn đề không nhiều.

+0

Theo như tôi đã có kinh nghiệm thiết bị di động sẽ bỏ qua các thuộc tính preload của '

+0

hmmm, vậy bạn sẽ từ bỏ điều này? Tôi thực sự không biết tại sao ứng dụng lại là một lựa chọn, nhưng bạn có thể sản xuất nó trên Android không? Ngoài ra tôi đã nghe nói về tương tác bản địa với ios từ javascript. Và nếu bạn thực sự cần nó rất nặng, bạn có thể sử dụng một đoạn video để chuyển đổi gif. Có rất nhiều người trong số họ trực tuyến. Chúc may mắn –

+1

Vấn đề là tôi đang cố gắng xây dựng một cơ chế mà tôi có thể tái sử dụng trong các tình huống khác nhau sau này (tức là đặt nó vào một plugin jQuery). Đối với các trang web trong câu hỏi tôi luôn có thể tìm thấy một workaround, nhưng nó sẽ được tốt đẹp để biết nếu có một * one-fits-all * phương pháp tiếp cận (mà dường như không tồn tại vào lúc này). Cảm ơn các đầu vào. – m90

Các vấn đề liên quan