2012-01-08 11 views
0

私はAndroidのデバイスにビデオをストリームするためのいくつかの小さなプロジェクトがあります。ストリーミングは行われますが、私はビデオを制御することに問題があります。 MediaControllerは、一時停止を押しても効果がありません。 VideoView.pause()も機能しません。ストリーミングサーバーはGStreamer(サーバーは私の友人が書いた)に基づいています。私はAndroid 2.2 CyanogenModを使っています。Android VideoView GStreamerストリーミング(MediaControllerは動作しません)

これは、サーバーのコードです:

#include <gst/gst.h> 

#include <gst/rtsp-server/rtsp-server.h> 

int 
main (int argc, char *argv[]) 
{ 
    GMainLoop *loop; 
    GstRTSPServer *server; 
    GstRTSPMediaMapping *mapping; 
    GstRTSPMediaFactory *factory; 
    gchar *str; 

    gst_init (&argc, &argv); 

    if (argc < 2) { 
    g_message ("usage: %s <filename>", argv[0]); 
    return -1; 
    } 

    loop = g_main_loop_new (NULL, FALSE); 

    /* create a server instance */ 
    server = gst_rtsp_server_new(); 

    /* get the mapping for this server, every server has a default mapper object 
    * that be used to map uri mount points to media factories */ 
    mapping = gst_rtsp_server_get_media_mapping (server); 

    str = g_strdup_printf ("(" 
     "filesrc location=\"%s\" ! decodebin2 name=d " 
     "d. ! queue ! videoscale ! video/x-raw-yuv, width=500, height=300 " 
     "! ffenc_mpeg4 ! rtpmp4vpay name=pay0 " 
     "d. ! queue ! audioconvert ! faac ! rtpmp4apay name=pay1" 
     ")", argv[1]); 

    /* make a media factory for a test stream. The default media factory can use 
    * gst-launch syntax to create pipelines. 
    * any launch line works as long as it contains elements named pay%d. Each 
    * element with pay%d names will be a stream */ 
    factory = gst_rtsp_media_factory_new(); 
    gst_rtsp_media_factory_set_launch (factory, str); 
    g_free (str); 

    /* attach the test factory to the /test url */ 
    gst_rtsp_media_mapping_add_factory (mapping, "/test", factory); 

    /* don't need the ref to the mapper anymore */ 
    g_object_unref (mapping); 

    /* attach the server to the default maincontext */ 
    gst_rtsp_server_attach (server, NULL); 

    /* start serving */ 
    g_main_loop_run (loop); 

    return 0; 
} 

答えて

0

私が集まってきたものから、アンドロイドでVideoViewh.264はそうあなたがh.264でエンコードする必要があるフィードを受け入れます。

関連する問題