流媒体开发之--直播实现
关于直播的相关信息这里不做详解,我们对直播应该很熟悉,实现生活中有各种直播,他们如何实现的呢,其实开发一个简单不能简单的直播,只需要两个:1、直播地址 2、播放器,对于直播地址我们可以利用很多软件获取连接,播放器,现在开源的也有很多,最常见的就是ffmpeg,但是如果直接用ffmpeg开发工作量比较大,我们可以使用第三方的播放器库,例如vlc,vitamio等等,这里我使用的时vitamio库。
首先建立一个项目,命名为Live,项目建立好了以后我们需要配置vitamio需要的环境,网上有很多,这里就不写出了,添加了依赖库后添加一个主界面,这里我只添加了一个EditView和Button,配置如下:
[html]
<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=".Live" >
<EditText
android:id="@+id/live_url"
android:layout_width="match_parent"
android:layout_height="100dp" />
<Button
android:id="@+id/play"
android:layout_width="120dp"
android:layout_height="60dp"
android:layout_below="@id/live_url"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:text="Play" >
</Button>
</RelativeLayout>
<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=".Live" >
<EditText
android:id="@+id/live_url"
android:layout_width="match_parent"
android:layout_height="100dp" />
<Button
android:id="@+id/play"
android:layout_width="120dp"
android:layout_height="60dp"
android:layout_below="@id/live_url"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:text="Play" >
</Button>
</RelativeLayout>
主界面的类:
[java]
package com.jwzhangjie.live;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Live extends Activity {
public static final String DEFAULTPATH = "http://ipadlive.cntv.soooner.com/cctv_p2p_hdcctv6.m3u8";
EditText Live_Url;
Button PlayBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live);
Live_Url = (EditText)findViewById(R.id.live_url);
Live_Url.setText(DEFAULTPATH);
PlayBtn = (Button)findViewById(R.id.play);
PlayBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(Live.this, JieVideoPlayer.class);
String path = Live_Url.getText().toString();
if (path == null) {
path = DEFAULTPATH;
}
intent.putExtra("path", path);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.live, menu);
return true;
}
}
package com.jwzhangjie.live;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Live extends Activity {
&nbs
补充:web前端 , HTML/CSS ,