web-dev-qa-db-fra.com

Créez une application de diffusion en direct pour Android

J'ai de la difficulté ces derniers temps.

Je veux développer une application Android avec un livestreaming intégré, mais je ne sais pas comment commencer. J'ai essayé d'utiliser une Webview avec le tag livestreaming intégré, mais cela n'a pas fonctionné ( très probablement, le flux est fourni via Flash.) J'ai également essayé d'utiliser un composant VideoView mais cela n'a pas fonctionné non plus.

Je sais que c'est possible parce que ces éditeurs ont leur propre APP, mais le format qui nous est fourni est généralement Flash. Pas un format adapté aux mobiles.

Quelqu'un peut-il, s'il vous plaît, me montrer une idée sur la façon de commencer ou s'il y a une solution?

Merci d'avance!

ÉDITER:

Ce que je voudrais faire, c'est, par exemple, prendre ce flux, par exemple: http://new.livestream.com/ATP/lexington2014court1 et l'afficher dans mon APP.

17
priki

Je pense que je l'ai fait!

Tout d'abord, j'utilise en effet le flux de livestream.com, mais pour le moment, ils n'ont pas d'API publique pour la version actuelle, mais .... J'ai obtenu beaucoup d'aide d'ici: new.livestream.com API pour obtenir RTSP

Il y a donc cet appel API http://new.livestream.com/api/accounts/ [account_id]/events/[event_id]/Viewing_info

qui nous renvoient un JSON. Ensuite, je prends la valeur "rtsp_url" et la mets dans mon VideoURI.

Voici donc mon code: veuillez remplacer "{VIDEO_RTSP_URL}" dans le code ci-dessous par la valeur de "rtsp_url" du JSON que vous avez obtenu ci-dessus.

MainActivity.Java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    VideoView videoView = (VideoView) findViewById(R.id.video);
    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(videoView);
    mediaController.setMediaPlayer(videoView);

    Uri video = Uri.parse("{VIDEO_RTSP_URL}");
    videoView.setMediaController(mediaController);
    videoView.setVideoURI(video);
    videoView.start();      
}

activity_main.xml

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:paddingBottom="@dimen/activity_vertical_margin"
    Android:paddingLeft="@dimen/activity_horizontal_margin"
    Android:paddingRight="@dimen/activity_horizontal_margin"
    Android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.fcl.videoplay.MainActivity" >

    <VideoView
        Android:id="@+id/video"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_alignParentBottom="true"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentRight="true"
        Android:layout_alignParentTop="true" />

</RelativeLayout>

Maintenant, pour une raison quelconque, le streaming ne fonctionne pas lorsque je me connecte au Wi-Fi, mais il fonctionne lorsque je suis en 3G (je teste sur un vrai appareil. Pas un émulateur), mais c'est un autre sujet

Dans l'ensemble, si vous utilisez un service de streaming, comme Livestream.com, ils pourraient vous fournir quelque chose comme ceci RTSP_URL via une API. Vous aurez probablement juste besoin de l'utiliser.

13
priki