2012-02-08 29 views
11

Tôi có ví dụ được lưu trữ tốt trên chrome và hiển thị video khi ngoại tuyến.Có thể bộ nhớ cache Android HTML5 video với cache manifest offline?

Khi tôi thử ví dụ này với máy tính bảng Android 3.2 và 4.x, video sẽ chỉ phát trực tuyến nhưng không ngoại tuyến - mặc dù các phần tử khác như tệp HTML và nền hiện có ngoại tuyến.

<!DOCTYPE html> 
<html manifest="example.appcache"> 
    <head> 
     <title>Hello Video!</title> 
     <style> 
     body{ background: url('background.jpg');} 
     </style> 
    </head> 
    <body> 
     <video width="855" height="480" controls=""> 
      <source src="railer.mp4"/> 
     </video> 
    </body> 
</html> 

Và bộ nhớ cache manifest example.appcache trông giống như:

CACHE MANIFEST 

index.html 
railer.mp4 
background.jpg 

NETWORK: 
* 

Có ai quản lý để có được ẩn hình bộ nhớ đệm làm việc cho các trình duyệt android qua bộ nhớ cache-manifest?

+3

Bạn đã bao giờ giải quyết vấn đề của mình chưa? @alarmatwork – Odin

+0

@ alarmatwork, vui lòng xem: http://stackoverflow.com/a/42379075/1911755 –

Trả lời

2

Tôi đã cố gắng lưu trữ định dạng video (định dạng mp4) cũng như tệp âm thanh (định dạng mp3) trên Android 4.1.2 bằng trình duyệt mặc định cũng như Chrome 27.0 nhưng như bạn đã đề cập trong bài đăng của mình đã không phát video và âm thanh ở chế độ ngoại tuyến.

0

Vấn đề là kích thước tối đa AppCache không được chỉ định trong HTML5 offline spec. Variouspostson the internet hiển thị các giới hạn hạn ngạch khác nhau cho bộ nhớ ngoại tuyến.

Trên StackOverflow cũng có rất nhiều câu hỏi tồn tại liên quan đến câu hỏi tối đa của bộ nhớ cache. filesize:

Tôi nghĩ rằng tất cả những gì là an toàn để nói là, rằng hạn ngạch tối đa sử dụng được rất nhiều phụ thuộc vào trình duyệt và nền tảng - và đôi khi ngay cả trên không gian miễn phí có sẵn .

Có một công cụ có sẵn http://demo.agektmr.com/storage/ (được tìm thấy trong số này article) cho phép kiểm tra hạn ngạch tối đa có thể sử dụng trên thiết bị của bạn. Có thể khi bạn kiểm tra nó, bạn sẽ thấy rằng các tập tin của video bạn muốn bộ nhớ cache là quá lớn cho thiết bị của bạn.

TL; DR Các nguồn được đề cập dẫn tôi đến câu trả lời sau: Đó là (đôi khi) có thể lưu trữ một video có kích thước giới hạn, phụ thuộc vào trình duyệt, nền tảng và môi trường chạy. Nhưng không có đảm bảo rằng nó sẽ được lưu trữ đúng cách (ít nhất là nếu nó không đủ nhỏ).

+0

Trong trường hợp của tôi, tôi đã xác nhận rằng các tệp video đã được trình duyệt lưu trữ (và các tệp video của tôi chỉ nằm trong khoảng 1mb và 3mb trong mọi trường hợp), nhưng chúng vẫn không phát khi trình duyệt ngoại tuyến. – rdans

+0

Ồ - bạn có trình duyệt để lưu trữ video (ví dụ: được lưu vào bộ nhớ) nhưng trình duyệt sẽ không tải tệp được lưu vào bộ nhớ cache không? Vâng, âm thanh giống như một lỗi trình duyệt với tôi hơn là một giới hạn của tính năng appcache. – GeneSys

0

Tôi đã bao gồm một xương trần example (src) về cách lưu vào bộ nhớ cache video HTML5 để sử dụng ngoại tuyến khi sử dụng Bộ nhớ cache ứng dụng hoặc Công nhân dịch vụ.

Để lưu trữ các video cho sử dụng ngoại tuyến

  1. lấy video như một mảng đệm
  2. cửa hàng Array Buffer trong IndexedDB
  3. chuyển đổi các mảng đệm vào một blob
  4. Gán các blob để nguồn của video
  5. Khi ngoại tuyến, hãy lấy nguồn của video từ IndexedDB

Bạn có thể lấy nguồn của video từ IndexedDB khi trực tuyến, nếu bạn muốn.

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