Esta es probablemente una pregunta tonta, pero soy muy nuevo en la codificación, así que tengan paciencia conmigo.
Estoy tratando de reproducir archivos de audio cuando se presiona un botón y se selecciona una canción en la rueda giratoria. Pero el número no parece estar actualizando y solo escucho la misma canción.
private void Onclick() {
final int[] songlist ={
R.raw.salsa,
R.raw.fantasy,
};
mp = MediaPlayer.create(this, songlist[spinner.getSelectedItemPosition()]);
mp.setLooping(true);
play_btn.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.start();}
});}
¿Por qué no funciona esto?
EDITAR: método onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play_btn = (ImageButton) findViewById(R.id.play_btn);
spinner = (Spinner) findViewById(R.id.song_spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.songs_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
Onclick();
}
2 respuestas
Usted puede ir con esto:
Agregar una propiedad de clase como:
final int[] songlist ={
R.raw.salsa,
R.raw.fantasy,
};
int selectedSong; //default to 0
Luego, en su clase, puede agregar un oyente en los eventos de cambio de valor de la ruleta con esto:
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
selectedSong = position;
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {}
});
Y ahora en el botón onClick, puedes ir con este código:
play_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp = MediaPlayer.create(MainActivity.this, songlist[selectedSong]);
mp.setLooping(true);
mp.start();
}
});
Para que esto funcione, todo lo que tiene que hacer es inicializar el objeto del reproductor de medios cada vez que hace clic en el botón presionado.
play_btn.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
// in your code it is initialised with the first selected object
mp = MediaPlayer.create(this, songlist[spinner.getSelectedItemPosition()]);
mp.setLooping(true);
mp.start();}
})};
Nuevas preguntas
java
Java es un lenguaje de programación de alto nivel. Utilice esta etiqueta cuando tenga problemas para usar o comprender el idioma en sí. Esta etiqueta rara vez se usa sola y se usa con mayor frecuencia junto con [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] y [maven].