溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaWeb項(xiàng)目音頻資源播放實(shí)現(xiàn)方法詳解

發(fā)布時(shí)間:2020-09-08 18:20:22 來源:腳本之家 閱讀:188 作者:德邦總管 欄目:編程語言

一、方式1:登陸系統(tǒng)后進(jìn)行播放,即在瀏覽器端

需要在JSP頁面編寫相關(guān)代碼

<div id="midea" >
  <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腳本里調(diào)用

document.getElementById('player').controls.play();
setTimeout(stopPlayer,6000);
function stopPlayer(){
  document.getElementById('player').controls.stop();
}

二、方式2:不用登陸即可播放,即在服務(wù)器

需在java后臺(tái)編寫相關(guān)代碼

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 {
      //項(xiàng)目URL根路徑
      String path = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
      //音頻資源地址
      audioUrl = new URL(path+"/player/bestduanxin.wav");
      //創(chuàng)建音頻播放類
      final AudioClip audioClass=Applet.newAudioClip(audioUrl);
      audioClass.loop();
      //new一個(gè)線程執(zhí)行停止播放
        TimerTask task = new TimerTask() {
        @Override
        public void run() {
          audioClass.stop();
        }
      };
      //new一個(gè)定時(shí)器,指定播放若干秒后執(zhí)行停止播放
      Timer timer = new Timer();
      timer.schedule(task, GetPropertiesValue.getTimes()*GetPropertiesValue.getDuration());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

附獲取音頻文件時(shí)長的方法

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>//得到的時(shí)間為微秒(μs),除以1000得到毫秒(ms)數(shù)
System.out.println(clip.getMicrosecondLength()/1000);

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI