>

좋아, 이제 뮤직 플레이어 리그에 문제가있어 실제 노래를 재생할 수 있지만 다음 곡을 재생할 때 오류가 발생한다

내 디렉토리에 3 곡의 노래가 있습니다

여기에 변수와 onCreate 메소드가 있습니다

ListView listaCanciones;
List<String> list;
ListAdapter adapter;
MediaPlayer mp; ;
int posicion = 0;
Button play_pause, btn_repetir;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_explorador);
    play_pause = (Button)findViewById(R.id.btnPlay_Pause);
    listaCanciones = findViewById(R.id.lv);
    list = new ArrayList<>();
    Field[] fields = R.raw.class.getFields();
    for (int i = 0; i < fields.length; i++){
        list.add(fields[i].getName());
    }

    adapter = new ArrayAdapter<>(this, R.layout.list_view_configuracion, list);
    listaCanciones.setAdapter(adapter);
    listaCanciones.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            if(mp != null ){
                mp.stop();
                mp.release();
            }
            int resID = getResources().getIdentifier(list.get(i), "raw", getPackageName());
            mp = MediaPlayer.create(Explorador.this, resID);
            mp.start();
            play_pause.setBackgroundResource(R.drawable.pausa);
            //Toast.makeText(getApplicationContext(), "Reproduciendo", Toast.LENGTH_SHORT).show();
        }
    });
}

모든 것이 잘 작동하고 실제 노래를 일시 중지하는 방법도 있습니다

public void play_pause(View view){
    if (mp.isPlaying()){
        mp.pause();
        play_pause.setBackgroundResource(R.drawable.reproducir);
        Toast.makeText(this, "Pausa", Toast.LENGTH_SHORT).show();
    }
    else {
        mp.start();
        play_pause.setBackgroundResource(R.drawable.pausa);
        Toast.makeText(this, "Reproduciendo", Toast.LENGTH_SHORT).show();
    }

하지만 내 방법으로는 다음 곡을 전달하는 방법을 모르겠습니다

public void Next(View view){
    if (posicion < list.length -1){
        if(list[posicion].isPlaying()){
            list[posicion].stop();
            list++;
            list[posicion].start();
        }
        else {
            posicion++;
        }
    }
    else {
        Toast.makeText(this, "No more songs", Toast.LENGTH_SHORT).show();
    }
}

  • 답변 # 1

    어떤 오류가 있습니까?

    Next() 에서  방법, 당신은 MediaPlayer의 목록이있는 것처럼하고 있습니다. 그러나 하나의 플레이어와 여러 개의 오디오 파일 만 있습니다. 다음과 같이하면됩니다 :

    현재 위치 검색

    현재 재생중인 파일을 중지

    onItemClick() 에서 한 것과 같은 새로운 포지션으로 새로운 선수를 시작하십시오  방법.

  • 이전 reactjs - 반응 - 요소 유형이 유효하지 않습니다 문자열 (내장 구성 요소의 경우) 또는 클래스/함수 (복합 구성 요소의 경우)이지만 객체 :
  • 다음 WebView가 Android 90에서 페이지를로드하지 않습니까?