【问题标题】:stream live video to Android将实时视频流式传输到 Android
【发布时间】:2012-08-10 09:15:00
【问题描述】:

如何将实时视频流式传输到 Android(2.1 及更高版本),我有两个链接:m3u8f4m(据我所知,不支持 f4m)。

根据我在 stackoverflow 上看到的,有一种方法可以使用 vitamio 流式传输 m3u8(但链接不起作用)。

还有其他方法可以流式传输 m3u8 视频吗? 也许我可以使用其他格式?

谢谢。

【问题讨论】:

    标签: android video-streaming http-live-streaming android-video-player


    【解决方案1】:

    因为没有人回答我的问题,所以我会自己做。

    如果您想在 Android 2.1 及更高版本上执行 HLT(HTTP Live Stream),您可以使用 vitamio 库。

    网址:(http://www.vitamio.org/)。

    这里是代码示例: 主要布局:

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

    类:

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

    【讨论】:

    【解决方案2】:

    我在 OS 2.2、2.3.4 和 4.0.4 的设备上测试了相同的流。在我拥有的设备上,此流与常规 VideoView 播放得非常好。我不将 MediaController 与实时流一起使用。剩下的代码很简单。

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

    【讨论】:

      【解决方案3】:

      KickFlip 是一个开源和免费的视频流库,安装起来超级简单。

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

      试试这个。

      【讨论】:

        【解决方案4】:

        要将 vitamio 添加到您的项目中,只需添加此依赖项即可。 编译'me.neavo:vitamio:4.2.2' 然后就像@butter 告诉你的那样。 快乐编码。祝你好运

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-07
          相关资源
          最近更新 更多