ExoPlayer:如何播放http直播流?

问题描述 投票:4回答:3

我想在我的Android应用程序中使用ExoPlayer库来播放实时流媒体视频。

我正在浏览exoplayer网站和文档以及Github页面,但我对解释不满意。

任何人都可以给我一个提示,你如何通过ExoPlayer播放http直播视频?

提前致谢。

android video-streaming exoplayer
3个回答
1
投票

我能够立即在ExoPlayer中播放LiveStream。 只需在https://drive.google.com/file/d/0Byr1H33Pe7u-MW93UUpmMUhGTTQ/view下载此示例并修改Uri

video_url = "http://cspan1-lh.akamaihd.net/i/cspan1_1@304727/index_1000_av-p.m3u8";

注意:由于格式不正确,某些m3u8文件无法播放 在这里查看支持的格式qazxsw poi


0
投票

你可以使用exomedia https://google.github.io/ExoPlayer/supported-formats.html库,它使用exoplayer。该库使用起来非常简单。只需在gradle文件中添加以下依赖项

exomedia

并在您的布局文件中

repositories {
    jcenter();
}

dependencies {
    compile 'com.devbrackets.android:exomedia:3.0.5'
}

现在,您可以在主要活动中使用EMVideoView

<com.devbrackets.android.exomedia.ui.widget.EMVideoView
    android:id="@+id/video_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    EMVideoView:useDefaultControls="true"/>

0
投票

要播放HLS文件或直播(m3u8),您可以使用Google public class MainActivity extends AppCompatActivity implements OnPreparedListener{ EMVideoView emPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); playVideo(); } private void playVideo() { emPlayer = (EMVideoView)findViewById(R.id.video_view); emPlayer.setOnPreparedListener(this); emPlayer.setVideoURI(Uri.parse("your http url")); } @Override public void onPrepared() { emPlayer.start(); Log.v("TAG","video is playing"); } } 。您只需要指定要播放的流的类型,如HLS或DASH到exoplayer。

exoplayer

我希望您将使用来自Intent mpdIntent = new Intent(MainActivity.this, PlayerActivity.class) .setData(Uri.parse("http://devimages.apple.com/samplecode/adDemo/ad.m3u8")) .putExtra(LiveTVPlayerActivity.CONTENT_ID_EXTRA, "My Channel Name") .putExtra(LiveTVPlayerActivity.CONTENT_TYPE_EXTRA, Util.TYPE_HLS) .putExtra(LiveTVPlayerActivity.PROVIDER_EXTRA, ""); startActivity(mpdIntent); 的最新代码并指定要播放的流的类型。

© www.soinside.com 2019 - 2024. All rights reserved.