Ich habe ein Problem in meiner Anwendung. ist es ein Media Recorder Player. die Spieler funktionieren, aber das Problem ist, wenn ich ein Lied oder einen Recorder spielen ich die app (Exit) und die Musik nicht schließen aufhören zu spielen. können Sie mir helfen, mein Problem zu lösen? danke.Wie stoppe ich die Musik beim Schließen der App
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_player);
albumart=(ImageView)findViewById(R.id.albumArt);
name=(TextView)findViewById(R.id.songName);
artist=(TextView)findViewById(R.id.artistName);
play=(ImageButton)findViewById(R.id.playButton);
prev=(ImageButton)findViewById(R.id.previousButton);
next=(ImageButton)findViewById(R.id.nextButton);
playlist=(ImageButton)findViewById(R.id.playlistButton);
sb=(SeekBar)findViewById(R.id.seekBar);
if(mPlayer!=null){
if(su!=null){
su.endthread();
su.interrupt();
su=null;
}
mPlayer.stop();
mPlayer.release();
}
fs=new FetchSongs();
if(fs.getfetchstatus()!=true){
mySongs = fs.findSongs(Environment.getExternalStorageDirectory());
}
else{
mySongs=fs.getsonglist();
mPlayer.release();
}
Intent intent=getIntent();
position=intent.getIntExtra("pos",0);
path=mySongs.get(position).toString();
u=Uri.parse(path);
setsongdata(path,position);
mPlayer=MediaPlayer.create(getApplicationContext(),u);
mPlayer.start();
mPlayer.setLooping(true);
play.setImageResource(R.drawable.icone);
sb.setMax(mPlayer.getDuration());
su=new seekUpdater(true);
su.start();
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch (SeekBar seekBar) {
mPlayer.stop();
mPlayer.release();
}
});
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mPlayer.isPlaying()){
mPlayer.pause();
play.setImageResource(R.drawable.icone);
}
else {
mPlayer.start();
play.setImageResource(R.drawable.icone);
}
}
});
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(su!=null){
su.endthread();
su.interrupt();
su=null;
}
mPlayer.stop();
mPlayer.release();
position=(position+1)%mySongs.size();
path=mySongs.get(position).toString();
setsongdata(path,position);
u=Uri.parse(path);
mPlayer=MediaPlayer.create(getApplicationContext(),u);
mPlayer.start();
mPlayer.setLooping(true);
play.setImageResource(R.drawable.icone);
sb.setMax(mPlayer.getDuration());
sb.setProgress(mPlayer.getCurrentPosition());
su=new seekUpdater(true);
su.start();
}
});
prev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(su!=null){
su.endthread();
su.interrupt();
su=null;
}
mPlayer.stop();
mPlayer.release();
position=(position-1<0)? mySongs.size()-1:position-1;
path=mySongs.get(position).toString();
setsongdata(path,position);
u=Uri.parse(path);
mPlayer=MediaPlayer.create(getApplicationContext(),u);
mPlayer.start();
mPlayer.setLooping(true);
play.setImageResource(R.drawable.icone);
sb.setMax(mPlayer.getDuration());
sb.setProgress(mPlayer.getCurrentPosition());
su=new seekUpdater(true);
su.start();
}
});
playlist.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(),MainActivity.class));
}
});
}
class seekUpdater extends Thread{
private boolean running;
seekUpdater(boolean status){
running=status;
}
public void endthread(){
running=false;
}
@Override
public void run() {
try {
while (running==true) {
int dur = mPlayer.getDuration();
int cur = mPlayer.getCurrentPosition();
while (cur < dur) {
sleep(500);
cur = mPlayer.getCurrentPosition();
sb.setProgress(cur);
}
}
}
catch (InterruptedException e){
e.printStackTrace();
running=false;
}
//super.run();
}
}
public void setsongdata(String songpath, int pos){
mmr=new MediaMetadataRetriever();
mmr.setDataSource(songpath);
try {
songName=mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
art = mmr.getEmbeddedPicture();
songArt = BitmapFactory.decodeByteArray(art, 0, art.length);
artistName = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
artist.setText(artistName);
name.setText(songName);
albumart.setImageBitmap(songArt);
}
catch (Exception e){
albumart.setImageResource(R.drawable.albumart);
artist.setText("Unknown Artist");
name.setText(mySongs.get(pos).getName().toString().replace(".3gp",""));
}
}
}
Willkommen bei Stack Overflow! Ich könnte mir vorstellen, dass 95% dieses Codes für Ihre Frage nicht relevant ist. Bitte erstellen Sie ein [** minimales **, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve), das Ihr Problem veranschaulicht. –
leid ich beginne studing jetzt habe ich es –