Android - Android Studio, ¿Hay una forma de hacer mas fácil este codigo?

 
Vista:
sin imagen de perfil

Android Studio, ¿Hay una forma de hacer mas fácil este codigo?

Publicado por Humberto (1 intervención) el 02/07/2018 09:13:51
Que tal, ando empezando a programar en Android Studio y después de demasiados tutoriales y prueba y error logre hacer una app con botones que al presionarlos reproduzcan un sonido, mi problema fue hacer que al presionar un sonido nuevo se detuvieran los demás sonidos, y que al volver a darle clic al sonido en reproducción también se detuviera.
Usaba ."stop();" pero eso de alguna manera dejaba inactivo el sonido del botón que detenia
De momento logre lo que quería, la app esta funcionando (hasta el momento solo añadí 6 botones) pero creo que me complique demasiado las cosas.

Mi duda es si hay alguna forma mas eficiente para lograr lo que quería hacer, ya que cuando agregue otros 50 o 60 botones que es lo planeado creo que sera demasiado código. Ademas no se si omití algunas lineas de código que todas las apps deban llevar.

Este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
package com.hct.sonidosdememes;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
import java.io.IOException;
 
import static android.media.MediaPlayer.*;
 
public class Actividadprincipal extends AppCompatActivity implements View.OnClickListener{
 
    public void procesar(int opc) {
        switch (opc){
 
 
"esto es lo que hice para que funcionara, detener() detiene todos los sonidos pero como los dejaba inservibles puse la otra función para volver a crearlos y que así se pudiera reproducir el sonido."
 
        case R.id.btn1: if(!sonido1.isPlaying()) {
            detener();
            crear();
            sonido1.start();
        }
        else{
            detener();
            crear();
        }
        break;
        case R.id.btn2: if(!sonido2.isPlaying()) {
            detener();
            crear();
            sonido2.start();
        }
        else {
            detener();
            crear();
        }
        break;
        case R.id.btn3: if(!sonido3.isPlaying()) {
            detener();
            crear();
            sonido3.start();
         }
         else{
            detener();
            crear();
         }
         break;
        case R.id.btn4: if(!sonido4.isPlaying()) {
            detener();
            crear();
            sonido4.start();
        }
        else{
            detener();
            crear();
        }
        break;
        case R.id.btn5: if(!sonido5.isPlaying()) {
            detener();
            crear();
            sonido5.start();
        }
        else {
            detener();
            crear();
        }
        break;
        case R.id.btn6: if(!sonido6.isPlaying()) {
            detener();
            crear();
            sonido6.start();
        }
        else{
            detener();
            crear();
        }
        break;
    }
                    }
 
 
"Esta parte de cargar a futuro 60 sonidos/botones también tengo duda si es la mejor manera de hacerse"
    MediaPlayer sonido1;
    MediaPlayer sonido2;
    MediaPlayer sonido3;
    MediaPlayer sonido4;
    MediaPlayer sonido5;
    MediaPlayer sonido6;
    Button btn1;
    Button btn2;
    Button btn3;
    Button btn4;
    Button btn5;
    Button btn6;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_actividadprincipal);
 
        btn1 = (Button) findViewById(R.id.btn1);
        btn1.setOnClickListener(this);
        btn2 = (Button) findViewById(R.id.btn2);
        btn2.setOnClickListener(this);
        btn3 = (Button) findViewById(R.id.btn3);
        btn3.setOnClickListener(this);
        btn4 = (Button) findViewById(R.id.btn4);
        btn4.setOnClickListener(this);
        btn5 = (Button) findViewById(R.id.btn5);
        btn5.setOnClickListener(this);
        btn6 = (Button) findViewById(R.id.btn6);
        btn6.setOnClickListener(this);
        crear();
        }
 
#Y esta función crear(), detener() y On pause() imaginarlas a futuro con 60 botones me genera la misma duda"
    public void crear() {
        sonido1 = create(this, R.raw.badumps);
        sonido2 = create(this, R.raw.callatecallatebebe);
        sonido3 = create(this, R.raw.cuacuacuacua);
        sonido4 = create(this, R.raw.grillo);
        sonido5 = create(this, R.raw.sadahahah);
        sonido6 = create(this, R.raw.tantantan);
}

    @Override
    public void onClick(View view) {
        procesar(view.getId());
        }
    @Override
    protected void onPause(){
        super.onPause();
        sonido1.pause();
        sonido2.pause();
        sonido3.pause();
        sonido4.pause();
        sonido5.pause();
        sonido6.pause();
    }
    protected void detener(){
        super.onPause();
        sonido1.stop();
        sonido2.stop();
        sonido3.stop();
        sonido4.stop();
        sonido5.stop();
        sonido6.stop();
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Android Studio, ¿Hay una forma de hacer mas fácil este codigo?

Publicado por Victor (1 intervención) el 20/09/2022 04:35:30
Si eres un amante de la música, sabes que Soundcloud es el mejor lugar para encontrar artistas nuevos y futuros. También es una excelente manera de descubrir nueva música de artistas establecidos que quizás no hayas escuchado antes. Pero, ¿qué sucede si desea descargar sus pistas favoritas para poder escucharlas sin conexión? ¡Ingrese a Soundcloudtomp3downloader, la mejor herramienta para descargar música de Soundcloud!

Con Soundcloudtomp3downloader, puede descargar fácilmente cualquier pista de Soundcloud en formato MP3. Simplemente ingrese la URL de la pista en la aplicación y haga clic en "Descargar". ¡Eso es todo! Incluso puede elegir la calidad del archivo MP3, para asegurarse de obtener la mejor calidad de sonido posible. ¡Además, Soundcloudtomp3downloader es totalmente gratuito!

Entonces, si está buscando una manera fácil de descargar su música favorita de Soundcloud, no busque más allá de Soundcloudtomp3downloader. Es rápido, gratuito y fácil de usar. ¿Entonces, Qué esperas? Darle una oportunidad hoy!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar