繁体   English   中英

单击列表中的歌曲时,应用程序崩溃

[英]App is crashing when I click on a Song in List

这首歌应该用另一种意图播放,所以我意图通过Uri并在另一种活动中播放。 但是,一旦我点击一首歌曲,App就会崩溃。 救命

在MainActivity.java中-

@Override
public void itemClicked(View view, int position) {

    Intent intent = new Intent(this,playSong.class);
    songData playSong  = songList.get(position);
    long currSong  =  playSong.getID();
    Uri songUri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,currSong);
    intent.putExtra("songPosition",songUri);
    startActivity(intent);
}

}

在playSong.java中-

package com.example.ray.musico_mp3player;
import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.io.IOException;

public class playSong extends AppCompatActivity {

   Uri songUri=null;
   MediaPlayer mediaPlayer=null;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_play_song);
    songUri = getIntent().getParcelableExtra("songPosition");
    mediaPlayer.reset();
    try {
        mediaPlayer.setDataSource(getApplicationContext(),songUri);
        mediaPlayer.prepare();

    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaPlayer.start();
  }

 }

在logcat中:

 08-05 14:21:20.945 926-2524/? I/ActivityManager: Removing activity ActivityRecord{1fe06f76 u0 com.example.ray.musico_mp3player/.playSong t62 f} from stack at 1: haveState=true stateNotNeeded=false finishing=true state=DESTROYING
                                             java.lang.RuntimeException: here
                                                 at com.android.server.am.ActivityStack.removeHistoryRecordsForAppLocked(ActivityStack.java:4117)
                                                 at com.android.server.am.ActivityStack.handleAppDiedLocked(ActivityStack.java:4841)
                                                 at com.android.server.am.ActivityStackSupervisor.handleAppDiedLocked(ActivityStackSupervisor.java:3287)
                                                 at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:4983)
                                                 at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:5143)
                                                 at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:1302)
                                                 at android.os.BinderProxy.sendDeathNotice(Binder.java:559)

请初始化媒体播放器

public class playSong extends AppCompatActivity {

   Uri songUri=null;
   MediaPlayer mediaPlayer=null;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_play_song);
    songUri = getIntent().getParcelableExtra("songPosition");
   mediaPlayer = MediaPlayer();//Here the change
    mediaPlayer.reset();
    try {
        mediaPlayer.setDataSource(getApplicationContext(),songUri);
        mediaPlayer.prepare();

    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaPlayer.start();
  }

 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM