web-dev-qa-db-fra.com

diffuser de la vidéo en direct sur Android

Comment puis-je diffuser de la vidéo en direct sur Android (version 2.1 et ultérieure), j'ai deux liens: m3u8 et f4m (comme je le sais, f4m n'est pas pris en charge).

D'après ce que j'ai vu sur stackoverflow, il existe un moyen de diffuser m3u8 avec vitamio (mais le lien ne fonctionne pas).

Existe-t-il un autre moyen de diffuser de la vidéo m3u8? Peut-être qu'il y a un autre format que je peux utiliser?

Merci.

19
Butters

Parce que personne n'a répondu à ma question, je le ferai moi-même.

Si vous souhaitez exécuter HLT (HTTP Live Stream) sur Android 2.1 et versions ultérieures, vous pouvez utiliser la bibliothèque vitamio.

Site sur: ( http://www.vitamio.org/ ).

Voici un exemple de code: La disposition principale: 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout Android:id="@+id/LinearLayout01"
            Android:layout_height="fill_parent"         xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:paddingLeft="2px" Android:paddingRight="2px"
            Android:paddingTop="2px" Android:paddingBottom="2px"
            Android:layout_width="fill_parent" Android:orientation="vertical">

            <io.vov.vitamio.widget.VideoView
                 Android:layout_height="fill_parent"
                 Android:layout_width="fill_parent" Android:id="@+id/VideoView">               
            </io.vov.vitamio.widget.VideoView>
</LinearLayout>

la classe:

import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;
import Android.app.Activity;
import Android.content.Intent;
import Android.net.Uri;
import Android.os.Bundle;



public class LiveStrimingTestActivity extends Activity{

    VideoView videoView;

    private void test_2(){
        String httpLiveUrl = "http://aj.lsops.net/live/aljazeer_en_high.sdp/playlist.m3u8";   
        videoView = (VideoView) findViewById(R.id.VideoView);
        videoView.setVideoURI(Uri.parse(httpLiveUrl));
        MediaController mediaController = new MediaController(this);
        videoView.setMediaController(mediaController);
        videoView.requestFocus();
        videoView.start();
    }


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        test_2();             
    }     
}
34
Butters

J'ai testé le même flux sur des appareils avec OS 2.2, 2.3.4 et 4.0.4. Ce flux fonctionne très bien avec VideoView standard sur les appareils que j'ai. Je n'utilise pas MediaController avec des flux en direct. Le reste du code est simple.

initializeVideoView();
mVideoView.setVideoURI(Uri.parse("http://aj.lsops.net/live/aljazeer_en_high.sdp/playlist.m3u8"));
mVideoView.setMediaController(null);
mVideoView.start(); 
4
samreen

Pour ajouter vitamio à votre projet, ajoutez simplement cette dépendance .. Compilez 'me.neavo: vitamio: 4.2.2'

0
Kaushik Khambhadiya

KickFlip est une bibliothèque open source et gratuite pour le streaming vidéo. Il est très facile à installer. 

Kickflip.initWithApiKey(API_KEY, API_SECRET);
Kickflip.startBroadcastActivity(this, mBroadcastListener);

essaye ça.

0
Zumry Mohamed