2017-05-27 20 views
0

私はメディアプレーヤーを表示する際に問題に直面しています。 1)メディアコントローラが表示されてから3秒間だけメディアコントローラが表示されます。 2)メディアコントローラは、アクティビティが閉じられているとき、または戻るボタンが押されたときのみ、破壊する必要があります。 3)メディアコントローラは、メディアコントローラの表示のために場所を変更したいアクティビティの下部を表示しています。曲が終わるまで曲が終わるまでメディアコントローラを表示するには?

public void audioplayer(View view) 
{ 
    mediaController = new MediaController(this); 


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

    mediaPlayer.reset(); 
    try { 
     mediaPlayer.setDataSource(path); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try { 
     mediaPlayer.setOnPreparedListener(this); 
     mediaPlayer.prepare(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 
public void onPrepared(MediaPlayer mediaPlayer) { 

    mediaPlayer.start(); 

    Log.d(TAG, "onPrepared"); 
    mediaController.setMediaPlayer((MediaController.MediaPlayerControl) this); 
    mediaController.setAnchorView(findViewById(R.id.main_audio_view)); 

    handler.post(new Runnable() { 
     public void run() { 
      mediaController.setEnabled(true); 
      mediaController.show(); 
     } 
    }); 
} 




@Override 
protected void onStop() { 
    super.onStop(); 
    mediaController.hide(); 
    mediaPlayer.stop(); 
    mediaPlayer.release(); 
} 


@Override 
public boolean onTouchEvent(MotionEvent event) { 
    //the MediaController will hide after 3 seconds - tap the screen to make it appear again 
    mediaController.show(); 
    return false; 
} 

//--MediaPlayerControl methods---------------------------------------------------- 
public void start() { 
    mediaPlayer.start(); 
} 

public void pause() { 
    mediaPlayer.pause(); 
} 

public int getDuration() { 
    return mediaPlayer.getDuration(); 
} 

public int getCurrentPosition() { 
    return mediaPlayer.getCurrentPosition(); 
} 

public void seekTo(int i) { 
    mediaPlayer.seekTo(i); 
} 

public boolean isPlaying() { 
    return mediaPlayer.isPlaying(); 
} 

public int getBufferPercentage() { 
    return 0; 
} 

public boolean canPause() { 
    return true; 
} 

public boolean canSeekBackward() { 
    return true; 
} 

public boolean canSeekForward() { 
    return true; 
} 

@Override 
public int getAudioSessionId() { 
    return 0; 
} 
//-------------------------------------------------------------------------------- 

方法this.Theメディアプレーヤーを解決するために私を助けてseconds.pleaseメディアコントローラは、3つだけのために示されていることをメディアコントローラ.INのため、上記のコードを示す必要があるともメディアコントローラのみを非表示にします活動が破壊されたとき。

答えて

0

変更を返すpublic boolean onTouchEvent(MotionEvent event)をtrueにします。と削除するif(mediaPlayer.isPlaying()) { mediaPlayer.stop(); } 私はまた、それが助けてくれることを願っています。

+0

まだ問題は解決されません。 –

関連する問題