I have implemented the mediaplayer
and mediacontroller
but can't see the controller buttons like play/pause or the positionbar
for the audio.The music starts playing but the GUI doesn't appear. Code:
package mybitchinapp.cortana.com.musica;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.MediaController;
import android.widget.MediaController.MediaPlayerControl;
public class MainActivity extends AppCompatActivity implements MediaPlayerControl {
private MediaPlayer player;
private MediaController controller;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
player = MediaPlayer.create(this, R.raw.music);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
// controller = new MediaController(MainActivity.this);
setController();
player.start();
}
private void setController () {
controller = new MediaController(this);
controller.setPrevNextListeners(new View.OnClickListener() {
@Override
public void onClick(View v) {
playNext();
}
}, new View.OnClickListener() {
@Override
public void onClick(View v) {
playPrev();
}
});
controller.setMediaPlayer(this);
controller.setAnchorView(findViewById (R.id.main)); // This is the main activity
controller.setEnabled(true);
controller.show (10000);
}
public void playPrev () {
}
public void playNext () {
}
@Override
protected void onPause() {
super.onPause();
player.pause();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
controller.show ();
return false;
}
@Override
public void start() {
player.start();
}
@Override
public void pause() {
player.pause();
}
@Override
public int getDuration() {
return 0;
}
@Override
public int getCurrentPosition() {
return 0;
}
@Override
public void seekTo(int pos) {
}
@Override
public boolean isPlaying() {
return false;
}
@Override
public int getBufferPercentage() {
return 0;
}
@Override
public boolean canPause() {
return false;
}
@Override
public boolean canSeekBackward() {
return false;
}
@Override
public boolean canSeekForward() {
return false;
}
@Override
public int getAudioSessionId() {
return 0;
}
}
I am a beginner so it might be an implementation mistake so please give the revised code too.
I haven't really been able to implement MediaController correctly (It still doesn't show up). So instead, as a stopgap measure, instead of MediaController, I used buttons for play/pause, forward/rewind and for the progressSlider, a SeekBar can be used.
http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.