Cet article partage le code spécifique de Javax.sound pour réaliser une lecture audio simple pour votre référence. Le contenu spécifique est le suivant
/ ** * @see * @author al_assad [email protected] * @Date 17 novembre 2016 à 6:27:59 PM * @version v1.0 * Description: simple lecteur audio (prend uniquement en charge AU, RA, wav) * Implémentez rapidement la lecture audio sans utiliser JMF * * / Import Javax.Sound.sampled. *; importer java.io. *; classe publique MusicPlayer {private String MusicPath; // fichier audio privé volatile booléen run = true; // Enregistrez si l'audio joue du thread privé Mainthread; // Le fil de tâche pour la lecture de Audio Private AudioInputStream Audiostream; AUDIOFORORT PRIVÉ AUDIOFORMAT; Sourcedataline privée Sourcedataline; public MusicPlayer (String MusicPath) {this.musicPath = musicPath; prefetch (); } // Préparation de données private void Prefetch () {try {// Obtenir un flux de saisie audio Audiostream = Audiosystem.getAudioInputStream (nouveau fichier (musicpath)); // Obtenez l'objet codé de AudioOfOrGAT = Audiostream.getFormat (); // Packaging Audio Information Dataline.info Datalineinfo = new Dataline.info (SourceDataline.class, AudioFormat, Audiosystem.not_Specified); // Créer des lignes de données source à l'aide de la classe d'informations après l'enveloppement des informations audio et agir en tant que source SourceDataline du mélangeur = (SourceDataline) Audiosystem.getLine (DatalineInfo); Sourcedataline.Open (AudioOFORMAT); SourceDataline.start (); } catch (non soutenudaudiofileException ex) {ex.printStackTrace (); } catch (lineUnavailableException ex) {ex.printStackTrace (); } catch (ioException ex) {ex.printStackTrace (); }} // Destructor: Fermer audio lecture de lecture et les lignes de données protégées void finalize () lance throwable {super.finalalize (); Sourcedataline.drain (); SourceDataline.close (); Audiostream.close (); } // Play Audio: Définissez si pour Loop private void playMusic (Boolean Loop) lève InterruptedException {try {if (loop) {while (true) {playMusic (); }} else {playMusic (); // effacer la ligne de données et fermer SourceDataline.drain (); SourceDataline.close (); Audiostream.close (); }} catch (ioException ex) {ex.printStackTrace (); }} private void playMusic () {try {synchronisé (this) {run = true; } // Lisez le flux de données audio via la ligne de données et envoyez-les au mélangeur; // Processus de transmission du flux de données: AudioInputStream -> SourceDataline; Audiostream = Audiosystem.getAudioInputStream (nouveau fichier (MusicPath)); int count; octet tempbuff [] = nouveau octet [1024]; while ((count = audiostream.read (tempbuff, 0, tempbuff.length))! = -1) {synchronisé (this) {while (! run) wait (); } sourcedataline.write (tempbuff, 0, count); }} catch (UnporttedAudioFileException ex) {ex.printStackTrace (); } catch (ioException ex) {ex.printStackTrace (); } catch (InterruptedException ex) {ex.printStackTrace (); }} // Pause audio playback private void stopMusic () {synchronisé (this) {run = false; notifyall (); }} // Continuer à jouer à la musique private void continuemusic () {synchronisé (this) {run = true; notifyall (); }} // Méthode de contrôle d'appel externe: générer du thread principal audio; public void start (Boolean Loop) {mainthread = new Thread (new Runnable () {public void run () {try {playMusic (loop);} catch (interruptedException e) {e.printStackTrace ();}}}); mainthread.start (); } // Méthode de contrôle des appels externe: pause le thread audio public void stop () {new thread (new Runnable () {public void run () {stopMusic ();}}). Start (); } // Méthode de contrôle des appels externes: Continuez le thread audio public void continues () {new Thread (new Runnable () {public void run () {continuemusic ();}}). Start (); } // Tester public static void main (String [] args) lève InterruptedException {musicplayer player = new musicplayer ("bgm / 1.wav"); // Créer un lecteur de musique Player Player.Start (true); // Démarrer la lecture sous une forme de boucle, le joueur (false) ne joue pas à timeunit.seconds.sleep (5); player.stop (); // Pause audio playback timeUnit.seconds.sleep (4); Player.Continues (); // continue de commencer à jouer audio}}
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.