Java Webプロジェクトのオーディオリソース再生方法の詳細


一、方式1:システムにログインしてから再生すると、ブラウザの端にあります。
JSPページで関連コードを作成する必要があります。

<div id="midea" style="display: none;">
  <object id='player' height='100' width='200' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
    <param name='AutoStart' value='0' />
    <param name='Balance' value='0' />
    <param name='enabled' value='-1' />
    <param name='EnableContextMenu' value='-1' />
    <param name='url' value='${pageContext.request.contextPath}/player/bestduanxin.wav' />
    <param name='volume' value='100' />
    <param name='uiMode' value='mini' />
  </object>
</div>
jsスクリプトで呼び出します

document.getElementById('player').controls.play();
setTimeout(stopPlayer,6000);
function stopPlayer(){
  document.getElementById('player').controls.stop();
}
二、方式2:ログインしなくても再生できます。即ちサーバ端です。
javaバックグラウンドで関連コードを作成する必要があります。

import java.applet.Applet;
import java.applet.AudioClip;
import java.net.URL;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.http.HttpServletRequest;
 
public class AudioPlayer {
  public static void player(HttpServletRequest request){
    URL audioUrl=null;
    try {
      //  URL   
      String path = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
      //      
      audioUrl = new URL(path+"/player/bestduanxin.wav");
      //       
      final AudioClip audioClass=Applet.newAudioClip(audioUrl);
      audioClass.loop();
      //new          
        TimerTask task = new TimerTask() {
        @Override
        public void run() {
          audioClass.stop();
        }
      };
      //new     ,              
      Timer timer = new Timer();
      timer.schedule(task, GetPropertiesValue.getTimes()*GetPropertiesValue.getDuration());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
オーディオファイルの取得時の長い方法を添付します。

File file = new File(url.substring(0, url.indexOf("WEB-INF"))+"player/bestduanxin.wav");<br>Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(file);
clip.open(ais);<br>//        (μs),  1000    (ms) 
System.out.println(clip.getMicrosecondLength()/1000);
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。