Maison > Java > Comment arrêter l'audio lorsqu'un autre audio démarre (beaucoup d'audio)

Comment arrêter l'audio lorsqu'un autre audio démarre (beaucoup d'audio)

PHPz
Libérer: 2024-02-12 14:06:05
avant
592 Les gens l'ont consulté

Contenu de la question

J'ai 30 à 31 boutons et je veux qu'ils jouent un à la fois, donc si je clique sur un bouton, il jouera, puis lorsque je clique sur un autre bouton, il jouera, quel que soit le bouton sur lequel il s'agit. Arrêtez, voici l'exemple de code fait essentiellement cela et se répète, mais seuls les nombres changent, donc 1,2,3,4 etc :

public void Button1Text(View view) {
        Media1 = MediaPlayer.create(QuranJ30MA.this, R.raw.hannaba);
        Media1.start();
    }

    public void Button1Text2(View view) {
        Button1p = MediaPlayer.create(QuranJ30MA.this, R.raw.mannaba);
        Button1p.start();
    }
Copier après la connexion

J'ai essayé de voir si d'autres personnes voulaient faire la même chose mais comme je ne suis pas très bon avec Java, je ne comprends pas comment l'appliquer à ma machine, si ce n'est pas trop demander, je voulais juste t'expliquer Découvrez comment cela fonctionne, merci :)

Solution de contournement

Vous ne devriez jamais créer plusieurs lecteurs multimédias, ce sont des objets lourds et consomment beaucoup de ressources. Au lieu de cela, créez un lecteur multimédia et utilisez setdatasource pour modifier le son émis par ses paramètres (bien sûr, vous devrez d'abord arrêter le son d'origine).

La prochaine chose à changer est la création de données. Créez un mappage des identifiants avec les sons :

map<int, int> sounds = new hashmap();
sounds.put(button1id, r.raw.hannaba);
sounds.put(button2id, r.raw.mannaba);
...
Copier après la connexion

Ensuite, vous pouvez avoir la fonctionnalité de clic :

public void buttonClick(View view) {
   mediaPlayer.stop()
   mediaPlayer.setDataSource(sounds.get(view.getId())
   mediaPlayer.start()
}
Copier après la connexion

Définissez-le comme onclicklistener pour tous les boutons que vous souhaitez exécuter et vous n'avez besoin de l'écrire qu'une seule fois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal