将实时视频流式传输到 Android

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/11898643/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 09:07:05  来源:igfitidea点击:

stream live video to Android

androidvideo-streaminghttp-live-streamingandroid-video-player

提问by Butters

How can I stream live video to Android (2.1 and higher), I have two links: m3u8and f4m(As I know, f4m is not supported).

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

From what I saw on stackoverflow, there is a way to stream m3u8 with vitamio (but the link is not working ).

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

Is there any other way to stream m3u8 video ? Maybe there is other format that I can use ?

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

Thanks.

谢谢。

回答by Butters

Because no one answered my question, I will do it myself.

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

If you want to perform HLT (HTTP Live Stream) on Android 2.1 and higher you may use the vitamio library.

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

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

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

Here is code example: The main layout:

下面是代码示例: 主要布局:

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

the Class:

班上:

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

回答by samreen

I have tested the same stream on devices with OS 2.2, 2.3.4 and 4.0.4. This stream plays very well with regular VideoView on the devices I have got. I dont use MediaController with live streams. The rest of the code is simple.

我已经在 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(); 

回答by Zumry Mohamed

KickFlipis an open source and free library for Video Streaming and it is super easy t setup.

KickFlip是用于视频流的开源免费库,设置起来非常简单。

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

try this.

尝试这个。

回答by Kaushik Khambhadiya

To add vitamio to your project just add this dependency. compile 'me.neavo:vitamio:4.2.2' and then as @butter told you to do. Happy Coding.good luck

要将 vitamio 添加到您的项目中,只需添加此依赖项。编译 'me.neavo:vitamio:4.2.2' 然后按照@butter 告诉你的去做。快乐编码。祝你好运