2012-06-13 23 views
25

Chúng tôi có nhà cung cấp cung cấp cho chúng tôi các tệp m3u8 cho luồng HLS (ban đầu được dự định để sử dụng trong ứng dụng iOS).HLS (http phát trực tuyến) trên Android 3.0 và tìm kiếm

Android 3.0+ hỗ trợ phát trực tuyến http (http://developer.android.com/guide/appendix/media-formats.html) - và thực tế, chúng tôi có thể phát các tệp m3u8 này bằng cách sử dụng VideoView chuẩn trên Android 3.0+ .

EDIT: Android dường như coi đây là nguồn cấp dữ liệu video "thời gian thực" và vô hiệu hóa khả năng tìm kiếm hoặc tính thời lượng video. (Ở đâu-như iOS cho phép bạn tìm kiếm trong luồng mà không có vấn đề)

Có cách nào để buộc android 3.0+ tìm kiếm trong các tệp này không?

Dưới đây là một hoạt động mẫu cho những người khác để thử nghiệm với:

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.MediaController; 
import android.widget.VideoView; 

public class SandboxActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     VideoView vw = (VideoView) findViewById(R.id.videoView); 
     vw.setVideoPath("http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8"); 
     vw.setMediaController(new MediaController(this)); 
     vw.requestFocus(); 
     vw.start(); 
    } 
} 

và bố cục mẫu:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" android:id="@+id/root"> 

    <VideoView 
     android:id="@+id/videoView" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" /> 
</RelativeLayout> 

này đang sử dụng liên kết mẫu HLS từ Apple.

+0

Bạn có tìm thấy giải pháp cho vấn đề này không? –

+0

Tôi cũng muốn triển khai tìm kiếm trong luồng trực tiếp của HLS. Bạn đã tìm thấy giải pháp nào chưa? –

Trả lời

13

Nhìn vào này (mà bạn gọi quá) page

Nó nói:

  • phiên bản Nghị định thư 3 (Android 4.0 trở lên)
  • phiên bản Nghị định thư 2 (Android 3.x)

Và tại đây bạn có thể kiểm tra draft's for HLS. Bạn có thể chọn một phiên bản ở đầu trang.

tham khảo đầu tiên để tìm kiếm xuất hiện trong dự thảo 3 (so với dự thảo 2 3.x Android)

Giá trị của ngày và thời gian cung cấp một bản đồ thông tin của timeline của giới truyền thông đến một thích hợp Hiện tường đồng hồ, có thể được sử dụng như một cơ sở cho tìm kiếm

Chỉ cần chắc chắn. Tôi đã không đọc hết toàn bộ bản nháp. Nhưng, tôi đoán là Android đã triển khai bản nháp khá sớm trong Android 3.0 và họ có thể đã thực hiện nó một phần, đủ để chơi, nhưng nó không đủ để tìm kiếm.

Tôi không nghĩ rằng bạn có một sửa chữa dễ dàng cho việc này, ngoại trừ xông vào bên thứ 3 khách hàng HLS (theo đề nghị của vipw)

5

Xin lỗi các bạn, bạn đang cố lấy máu từ đá. Android 3.0 hỗ trợ một tập con HLS rất hạn chế và để hỗ trợ tìm kiếm trong luồng trực tiếp, bạn sẽ cần một ứng dụng khách HLS tốt hơn so với Google cung cấp.

1

Im không chắc chắn nhưng kể từ khi VideoView không hỗ trợ tìm kiếm đối với trường hợp của bạn, bạn có thể thử một số tùy chọn khác nhau như: http://wiki.videolan.org/AndroidCompile (dễ biên dịch)

0

Hơi liên quan đến điều này - dường như có lỗi ngăn chặn nguồn cấp dữ liệu HLS trực tiếp bắt đầu tại thời điểm phát trực tiếp. Tôi tưởng tượng điều này có thể là do giới hạn tìm kiếm này. Khi bạn bắt đầu nguồn cấp dữ liệu HLS trực tiếp (KHÔNG có thẻ EXT-X-ENDLIST) trên Android, có lỗi trong các thành phần phân tích cú pháp HLS lõi không bắt đầu tại điểm trực tiếp (cuối nguồn cấp dữ liệu) và thay vào đó bắt đầu ở đầu luồng.

Có một lỗi đệ trên code.google.com về điều này - bạn có thể 'sao' hoặc upvote đó:

http://code.google.com/p/android/issues/detail?id=37156

0

Tôi đoán được hành vi tìm kiếm bạn mô tả được thực hiện sử dụng một iframe chỉ danh sách phát (# EXT-XI-FRAMES-ONLY), yêu cầu khách hàng hỗ trợ ít nhất phiên bản 4 của thông số Pantos.