안드로이드 스튜디오 surfaceview를 이용한 스트리밍 캡처를 어떻게 하는지 궁금합니다.
스트리밍 영상 띄우는 다음과 같습니다. surfaceview로 화면 캡처를 하는 방법을 모르겠습니다.
package com.example.doyerim.mediaplayer;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback, MediaPlayer.OnPreparedListener{
private SurfaceView surfaceView;
private MediaPlayer mediaPlayer;
private SurfaceHolder surfaceHolder;
//private static final String VIDEO_PATH="rtsp://192.168.1.50:8000/unicast";
private static final String VIDEO_PATH="rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = (SurfaceView)findViewById(R.id.surfaceView);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(MainActivity.this);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setDisplay(surfaceHolder);
try{
mediaPlayer.setDataSource(VIDEO_PATH);
mediaPlayer.prepare();
mediaPlayer.setOnPreparedListener(MainActivity.this);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void onPause(){
super.onPause();
releaseMediaplayer();
}
@Override
protected void onDestroy(){
super.onDestroy();
releaseMediaplayer();
}
private void releaseMediaplayer(){
if(mediaPlayer != null){
mediaPlayer.release();
mediaPlayer = null;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void onPrepared(MediaPlayer mp) {
mediaPlayer.start();
}
}