2012-06-13 11 views
25

Mamy dostawcę, który daje nam pliki m3u8 dla strumieni HLS (pierwotnie przeznaczone do użytku w aplikacji na iOS).HLS (http streaming na żywo) na Androida 3.0 i szukając

Android 3.0+ obsługuje transmisję na żywo http (http://developer.android.com/guide/appendix/media-formats.html) - i faktycznie możemy odtwarzać te pliki m3u8 przy użyciu standardowego VideoView na Androida 3.0+ .

EDYCJA: Android traktuje to jako "wideo w czasie rzeczywistym" i wyłącza możliwość wyszukiwania lub obliczania czasu trwania filmu. (Gdzie iOS pozwala szukać w strumieniu bez problemów)

Czy istnieje sposób zmuszenia Androida 3.0+ do szukania w tych plikach?

Oto aktywność próbki dla innych, aby przetestować z:

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

i układ próbkowania:

<?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> 

To jest za pomocą łącza próbka HLS firmy Apple.

+0

Czy znalazłeś rozwiązanie tego problemu na końcu? –

+0

Chcę zaimplementować wyszukiwanie również w transmisji na żywo w HLS. Znalazłeś jakieś rozwiązanie? –

Odpowiedz

13

Spójrz na to (które, o których mowa zbyt) page

Mówi:

  • wersja protokołu 3 (Android 4.0 i wyżej)
  • wersja protokołu 2 (Android 3.x)

Tutaj można sprawdzić draft's for HLS. Możesz wybrać wersję na górze strony.

Pierwsza wzmianka pojawiła się w celu znalezienia projektu 3 (porównując do opracowania 2 Android 3.x)

Wartość z datą i godziną zapewnia informacyjny odwzorowanie osi czasu mediów na odpowiednim upływ czasu, który może być używany jako podstawa do szukając

Wystarczy, aby się upewnić. Nie przeczytałem całego szkicu. Ale domyślam się, że Android zaimplementował dość wczesny szkic w Androidzie 3.0 i mogli go częściowo zaimplementować, co wystarczy, by grać, ale nie wystarczy.

Nie sądzę, że masz łatwy poprawkę na to, z wyjątkiem kąpieli solankowych w 3rd party HLS klienta (jak sugeruje vipw)

5

Przykro mi, chłopaki, próbujesz dostać krew z kamienia. Android 3.0 obsługuje bardzo ograniczony podzbiór HLS, a do obsługi wyszukiwania w transmisjach na żywo potrzebujesz lepszego klienta HLS niż Google.

0

Wygląda na to, że istnieje błąd, który uniemożliwia uruchamianie kanałów HLS na żywo, tak jak powinny. Wyobrażam sobie, że może to wynikać z tego ograniczenia. Po uruchomieniu transmisji na żywo HLS (która NIE ma znacznika EXT-X-ENDLIST) na Androidzie, występuje błąd w podstawowych komponentach analizowania składni HLS, których nie można uruchomić w punkcie aktywnym (koniec kanału), oraz zamiast tego zaczyna się na początku strumienia.

jest błąd złożonym code.google.com o tym - można „gwiazda” lub upvote go tam:

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

0

Moje przypuszczenie jest zachowanie poszukiwanie Państwo opisany został zrealizowany za pomocą iframe tylko lista odtwarzania (tylko # EXT-XI-FRAMES), która wymaga klienta obsługującego co najmniej wersję 4 specyfikacji Pantos.

Powiązane problemy