parent
657780986e
commit
df8570f873
@ -0,0 +1,103 @@ |
|||||||
|
package com.frank.living.activity; |
||||||
|
|
||||||
|
import android.os.Bundle; |
||||||
|
import android.support.v7.app.AppCompatActivity; |
||||||
|
import android.util.Log; |
||||||
|
import com.frank.living.R; |
||||||
|
import com.frank.living.listener.IjkPlayerListener; |
||||||
|
import com.frank.living.widget.IjkVideoView; |
||||||
|
import tv.danmaku.ijk.media.player.IjkMediaPlayer; |
||||||
|
|
||||||
|
public class MultiScreenActivity extends AppCompatActivity implements IjkPlayerListener{ |
||||||
|
|
||||||
|
private final static String TAG = MultiScreenActivity.class.getSimpleName(); |
||||||
|
|
||||||
|
private IjkMediaPlayer ijkMediaPlayer; |
||||||
|
private IjkVideoView mVideoView1; |
||||||
|
private IjkVideoView mVideoView2; |
||||||
|
private IjkVideoView mVideoView3; |
||||||
|
private IjkVideoView mVideoView4; |
||||||
|
|
||||||
|
private final static String url1 = "rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov"; |
||||||
|
private final static String url2 = "http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8"; |
||||||
|
private final static String url3 = "rtmp://58.200.131.2:1935/livetv/hunantv"; |
||||||
|
private final static String url4 = "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8"; |
||||||
|
|
||||||
|
@Override |
||||||
|
protected void onCreate(Bundle savedInstanceState) { |
||||||
|
super.onCreate(savedInstanceState); |
||||||
|
setContentView(R.layout.activity_multi_screen); |
||||||
|
|
||||||
|
init(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
private void init(){ |
||||||
|
IjkMediaPlayer.loadLibrariesOnce(null); |
||||||
|
IjkMediaPlayer.native_profileBegin("libijkplayer.so"); |
||||||
|
|
||||||
|
mVideoView1 = (IjkVideoView) findViewById(R.id.video_view1); |
||||||
|
mVideoView1.setIjkPlayerListener(this); |
||||||
|
mVideoView1.setVideoPath(url1); |
||||||
|
mVideoView1.start(); |
||||||
|
|
||||||
|
mVideoView2 = (IjkVideoView) findViewById(R.id.video_view2); |
||||||
|
mVideoView2.setVideoPath(url2); |
||||||
|
mVideoView2.start(); |
||||||
|
|
||||||
|
mVideoView3 = (IjkVideoView) findViewById(R.id.video_view3); |
||||||
|
mVideoView3.setVideoPath(url3); |
||||||
|
mVideoView3.start(); |
||||||
|
|
||||||
|
mVideoView4 = (IjkVideoView) findViewById(R.id.video_view4); |
||||||
|
mVideoView4.setVideoPath(url4); |
||||||
|
mVideoView4.start(); |
||||||
|
} |
||||||
|
|
||||||
|
private void initOptions(){ |
||||||
|
if (ijkMediaPlayer == null) |
||||||
|
return; |
||||||
|
Log.e(TAG, "initOptions"); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "fast", 1); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 200); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 1); |
||||||
|
//0:代表关闭 1:代表开启
|
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 0); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 0); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 0); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max-buffer-size", 0); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "min-frames", 2); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max_cached_duration", 30); |
||||||
|
//input buffer:don't limit the input buffer size (useful with realtime streams)
|
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "infbuf", 1); |
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "nobuffer"); |
||||||
|
//ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");
|
||||||
|
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzedmaxduration", 100); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onIjkPlayer(IjkMediaPlayer ijkMediaPlayer) { |
||||||
|
this.ijkMediaPlayer = ijkMediaPlayer; |
||||||
|
initOptions(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Override |
||||||
|
protected void onStop() { |
||||||
|
super.onStop(); |
||||||
|
|
||||||
|
mVideoView1.stopPlayback(); |
||||||
|
mVideoView1.release(true); |
||||||
|
mVideoView2.stopPlayback(); |
||||||
|
mVideoView2.release(true); |
||||||
|
mVideoView3.stopPlayback(); |
||||||
|
mVideoView3.release(true); |
||||||
|
mVideoView4.stopPlayback(); |
||||||
|
mVideoView4.release(true); |
||||||
|
|
||||||
|
IjkMediaPlayer.native_profileEnd(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,48 @@ |
|||||||
|
<RelativeLayout |
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent"> |
||||||
|
|
||||||
|
<View |
||||||
|
android:id="@+id/divider1" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="1dp" |
||||||
|
android:background="@color/ijk_color_blue_800" |
||||||
|
android:layout_centerVertical="true"/> |
||||||
|
|
||||||
|
<View |
||||||
|
android:id="@+id/divider2" |
||||||
|
android:layout_width="1dp" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:background="@color/ijk_color_blue_800" |
||||||
|
android:layout_centerHorizontal="true"/> |
||||||
|
|
||||||
|
<com.frank.living.widget.IjkVideoView |
||||||
|
android:id="@+id/video_view1" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_above="@+id/divider1" |
||||||
|
android:layout_toStartOf="@id/divider2"/> |
||||||
|
|
||||||
|
<com.frank.living.widget.IjkVideoView |
||||||
|
android:id="@+id/video_view2" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_above="@+id/divider1" |
||||||
|
android:layout_toEndOf="@id/divider2"/> |
||||||
|
|
||||||
|
<com.frank.living.widget.IjkVideoView |
||||||
|
android:id="@+id/video_view3" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_below="@+id/divider1" |
||||||
|
android:layout_toStartOf="@id/divider2"/> |
||||||
|
|
||||||
|
<com.frank.living.widget.IjkVideoView |
||||||
|
android:id="@+id/video_view4" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_below="@+id/divider1" |
||||||
|
android:layout_toEndOf="@id/divider2"/> |
||||||
|
|
||||||
|
</RelativeLayout> |
Loading…
Reference in new issue