0

誰かがこれで私を助けることができますか?ユーザーがビデオを視聴できるプロジェクトを行っており、サーフェスビューとメディアプレーヤーを使用しています..今、ビデオを再生し、大画面で再生を続ける小さな画面が必要です..私が持っているものコードは今、再生ボタンをクリックするとビデオが再生されますが、フルスクリーンをクリックすると再生が続行されず、最初からビデオを再生するだけです。

public class MainActivity extends Activity implements OnClickListener ,  
SurfaceHolder.Callback{
//For surface
 MediaPlayer mediaPlayer, mediaPlayer_fullscreen;
 SurfaceView surfaceView, surfaceView_fullscreen;
 SurfaceHolder surfaceHolder, surfaceholder_fullscreen;
 boolean pausing = false;
 boolean pausing_2 = false;
 boolean reset = false;
 public static int media_length;


//FULL SCREEN
 Button play, pause;
 ImageButton mExit, resume;

 public static int mediaPlayer_length;


    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


   //For Surface
     getWindow().setFormat(PixelFormat.UNKNOWN);
      surfaceView = (SurfaceView)findViewById(R.id.surfaceView1);
      surfaceHolder = surfaceView.getHolder();
      surfaceHolder.addCallback(this);
      surfaceHolder.setFixedSize(176, 144);
      surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
      mediaPlayer = new MediaPlayer();

    //FULLSCREEN

    //For Surface
        surfaceView_fullscreen =    
 (SurfaceView)findViewById(R.id.surfaceView2);
        surfaceholder_fullscreen = surfaceView_fullscreen.getHolder();
        surfaceholder_fullscreen.addCallback(this);
        surfaceholder_fullscreen.setFixedSize(300, 300);

 surfaceholder_fullscreen.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        mediaPlayer_fullscreen = new MediaPlayer();

        media_length = mediaPlayer.getCurrentPosition();

}

@Override
public void onClick(View v) {

    switch(v.getId()){
   case R.id.play:
        playvideo();
    break;
   case R.id.view_fullscreen:

        mediaPlayer.release();
        linearlayout_head.setVisibility(View.GONE);

        linearlayout_fullscreen.setVisibility(View.VISIBLE);

        playvideo_fullscreen();

    break;
 }

 public void playvideo() {
    path_path = EditText_path.getText().toString();
    pausing = false;
    //reset = false;

     if(mediaPlayer.isPlaying()){
      mediaPlayer.reset();
     }

     mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
     mediaPlayer.setDisplay(surfaceHolder);

     try {
      mediaPlayer.setDataSource(getDataSource(path_path));
      Log.d("LOGPLAY", path_path);
      mediaPlayer.prepare(); 
     } catch (IllegalArgumentException e) {
      e.printStackTrace();
     } catch (IllegalStateException e) {
      e.printStackTrace();
     } catch (IOException e) {
      e.printStackTrace();
     }

     mediaPlayer.start();
     //mediaPlayer.pause();
     //media_length = mediaPlayer.getCurrentPosition();
}



public void playvideo_fullscreen() {
    pausing_2 = false;
    //reset = false;

     if(mediaPlayer_fullscreen.isPlaying()){
        mediaPlayer_fullscreen.reset();
       //mediaPlayer_fullscreen.seekTo(media_length);
     }

     mediaPlayer_fullscreen.setAudioStreamType(AudioManager.STREAM_MUSIC);
     mediaPlayer_fullscreen.setDisplay(surfaceholder_fullscreen);

     try {
      mediaPlayer_fullscreen.setDataSource(getDataSource(path_path));
      Log.d("LOGPLAYFullscreen", path_path);
      mediaPlayer_fullscreen.prepare(); 
     } catch (IllegalArgumentException e) {
      e.printStackTrace();
     } catch (IllegalStateException e) {
      e.printStackTrace();
     } catch (IOException e) {
      e.printStackTrace();
     }

      //mediaPlayer_fullscreen.start();

      mediaPlayer_fullscreen.seekTo(media_length);
}   

誰かがこれを手伝ってくれませんか。ありがとうございました。

4

1 に答える 1