この記事では、javax.soundの特定のコードを共有して、参照用の簡単なオーディオ再生を実現します。特定のコンテンツは次のとおりです
/ ** * @see * @author al_assad [email protected] * @date 2016年11月17日午後6時27:59 * @version v1.0 *説明:シンプルなオーディオプレーヤー(AU、RA、WAVのみ) java.io.*をインポートします。パブリッククラスMusicPlayer {private string musicpath; //オーディオファイルプライベート揮発性ブールンrun = true; //オーディオがプライベートスレッドMainThreadを再生するかどうかを記録します。 // Audio Private AudioInputStream AudioStreamを再生するためのタスクスレッド。プライベートオーディオフォーマットオーディオフォルマット;民間のソースタリンソースタリン; Public MusicPlayer(String MusicPath){this.MusicPath = MusicPath; prefetch(); } //データ準備プライベートボイドfrefetch(){try {// get audio input stream audiostream = audiosystem.getAudioInputStream(new File(MusicPath)); // audioformat = audioStream.getFormat()のエンコードされたオブジェクトを取得します。 //パッケージングオーディオ情報dataline.info datalineInfo = new dataline.info(sourcedataline.class、audioformat、audiosystem.not_specified); //オーディオ情報をラップした後に情報クラスを使用してソースデータの行を作成し、ミキサーのソースソース=(sourcedataline)audiosystem.getline(datalineInfo)のソースソースとして機能します。 sourcedataline.open(audioformat); sourcedataline.start(); } catch(unsupportedaudiofileexception ex){ex.printstacktrace(); } catch(lineUnavaibleException ex){ex.printstacktrace(); } catch(ioException ex){ex.printstacktrace(); }} // Destructor:オーディオ読み取りストリームとデータライン保護されたvoid finalize()throws throws {super.finalize(); sourcedataline.drain(); sourcedataline.close(); audioStream.close(); } //オーディオを再生:プライベートボイドplaymusic(boolean loop)throws interruperedexception {try {if(loop){while(true){playmusic(); }} else {playmusic(); //データラインをクリアし、sourcedataline.drain()を閉じます。 sourcedataline.close(); audioStream.close(); }} catch(ioException ex){ex.printstacktrace(); }} private void playmusic(){try {synchronized(this){run = true; } //データラインを介してオーディオデータストリームを読み取り、ミキサーに送信します。 //データストリーム伝送プロセス:AudioInputStream-> Sourcedataline; AudioStream = audiosystem.getAudioInputStream(new File(MusicPath)); int count; Byte tempbuff [] = new byte [1024]; while((count = audioStream.read(tempbuff、0、tempbuff.length))!= -1){synchronized(this){while(!run)wait(); } sourcedataline.write(tempbuff、0、count); }} catch(unsupportedaudiofileexception ex){ex.printstacktrace(); } catch(ioException ex){ex.printstacktrace(); } catch(arturnedexception ex){ex.printstacktrace(); }} // Audio Playback private void stopmusic(){synchronized(this){run = false; notifyall(); }} //音楽を継続し続けますprivate void continuemusic(){synchronized(this){run = true; notifyall(); }} //外部コール制御方法:オーディオメインスレッドを生成します。 public void start(boolean loop){mainthread = new runnable(){public void run(){try {playmusic(loop);} catch(arturtedexception e){e.printstacktrace();}}}); mainthread.start(); } //外部呼び出し制御方法:オーディオスレッドの一時停止public void stop(){new runnable(){public void run(){stopmusic();}})。start(); } //外部コール制御方法:オーディオスレッドを継続するpublic void continues(){new runnable(){public void run(){continueMusic();}})。start(); } // public static void main(string [] args)throws strows arturtedexception {musicplayer = new MusicPlayer( "BGM/1.WAV"); //音楽プレーヤープレーヤーPlayer.start(true); //ループ形式で再生を開始すると、player(false)はtimeunit.seconds.sleep(5)を再生しません。 player.stop(); //オーディオ再生timeUnit.seconds.sleep(4)を一時停止します。 player.continues(); //オーディオの再生を開始し続ける}}
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。