Appelez la méthode après 5 millisecondes
Comment appeler la méthode d'enregistrement au bout de 5 millisecondes lecture de fichiers audio avec le lecteur multimédia. J'ai essayé quelque chose comme ça, mais je ne sais pas et je n'ai pas trouvé de bons exemples à la fin de cette.
while(mp.isPlaying()){
if(record=0){
for(int i=0; i<5millisec; i++){ //how to define 5 millisec or is any better solution
}
startRecord();
record=1;
}
}
mp.stop();
mp.release();
mp=null;
source d'informationauteur nedroid
Vous devez vous connecter pour publier un commentaire.
5 millisecondes est une très courte période de temps et vous ne pouvez pas limiter la sortie audio pour une telle durée.
vous pouvez utiliser
Handler
pour exécuter un retard de fonctionner, mais il ne permettra pas d'assurer l'exécution dans les 5 millisecondes après la planification.un code pour le faire:
Vous pouvez utiliser la méthode postDelayed.
Dans l'exemple ci-dessous j'ai exécuté ma routine 100 millis après pour appeler la méthode.
Peut-être que vous souhaitez utiliser Fil de discussion.le sommeil?
Comme suit:
Remarquez que j'ai utilisé
==
dans leif
déclaration pour vérifier l'égalité, plutôt que d'assigner la valeur de0
à chaque fois, je suppose que c'est ce que vous voulez.Il est important de mentionner que le fait de mettre un Fil de sommeil va arrêter de faire quoi que ce soit pour la durée que vous spécifiez. Si c'est un Thread de l'INTERFACE utilisateur, puis qui vous permet de "geler" l'INTERFACE utilisateur de cette durée, alors assurez-vous d'utiliser de manière appropriée. Hwoever, vous exemple
for
boucle indique, c'est exactement le genre de chose que vous essayez de faire.essayez ceci:
Vous pouvez essayer d'utiliser Thread.sommeil(5), ou, si vous ne voulez pas utiliser le thread d'INTERFACE utilisateur pour cela, vous pouvez utiliser une Minuterie ou un AsyncTask qui déclenche un rappel après une attente de 5 ms dans la doInBackground() la méthode.
Ici est un assez bon exemple d'utilisation de la Minuterie:
https://stackoverflow.com/a/4598737/832008
Vous pouvez également utiliser ScheduledExecutorService
À l'aide d'un ExecutorService, vous pouvez planifier des commandes à exécuter qu'après un certain délai, ou à exécuter périodiquement. L'exemple suivant montre une classe avec une méthode qui met en place un ScheduledExecutorService de bip toutes les dix secondes pour une heure: