我将如何更改此脚本中的音量?(JavaScript)

布雷登羔羊

所以我有一个用于播放随机歌曲的脚本:http : //pastebin.com/G5JNFfY9

我不确定如何改变音量,有人能弄清楚吗(audio.volume 不起作用)?我还需要弄清楚如何在此脚本之外更改音量,因为音频是在函数中定义的。

另外,我需要一个有关如何更有效地缓冲它的示例。

莫比乌斯

你可以使用audio.volume你只需要有一种方法来检索当前播放的音频

var collection=[];// final collection of sounds to play
var loadedIndex=0;// horrible way of forcing a load of audio sounds
var range = document.getElementById('range');
 
// remap audios to a buffered collection
function init(audios) {
  for(var i=0;i<audios.length;i++) {
    var audio = new Audio(audios[i]);
    collection.push(audio);
    audio.volume = range.value/100;
    buffer(audio);
  }
}
 
// did I mention it's a horrible way to buffer?
function buffer(audio) {
  if(audio.readyState==4)return loaded();
  setTimeout(function(){buffer(audio)},100);
}
 
// check if we're leady to dj this
function loaded() {
  loadedIndex++;
  if(collection.length==loadedIndex)playLooped();
}
 
// play and loop after finished
function playLooped() {
  var audioIndex=Math.floor(Math.random() * (collection.length));
  var audio=collection[audioIndex];
  audio.play();
  // you weren't saving off the index when it changes songs
  loadedIndex = audioIndex;
  setTimeout(playLooped,audio.duration*1000);
}

// change volume
function changeVolume(e) {
  var value = Number(e.target.value)
  collection[loadedIndex].volume = value/100;
  e.target.nextElementSibling.childNodes[0].nodeValue = value + '%';
}
 
// the songs to be played!
init([
  'http://popsplit.us/assets/music/1.mp3',
  'http://popsplit.us/assets/music/2.mp3'
]);
<body>
<label for="range">Volume</label>
<input type="range" oninput="changeVolume(event)" id="range" min="0" max="100" />
<span class="output-volume">50%</span>

</body>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我将如何提高此脚本的效率?

来自分类Dev

Javascript:我将如何简化此代码?

来自分类Dev

我将如何在Rust中编写此C函数?

来自分类Dev

我将如何在文件中执行此操作?

来自分类Dev

在 Oozie 中,我将如何使用脚本输出

来自分类Dev

我将如何修改此脚本以递归转换所有文件?

来自分类Dev

我将如何完成此Java代码?

来自分类Dev

我将如何遍历此 API 数据

来自分类Dev

我将如何在Mac终端中的Eclipse中编译此Java项目目录?

来自分类Dev

我将如何在XML中重新创建此标准均衡器布局?

来自分类Dev

我将如何在香草JS中执行此Ajax jQuery?

来自分类Dev

我将如何在php和html中引用此代码

来自分类Dev

我将如何使用Java与Selenium Webdriver中的此输入框进行交互?

来自分类Dev

我将如何在cakePHP 2.x中编写此查询

来自分类Dev

我将如何在XML中重新创建此标准均衡器布局?

来自分类Dev

我将如何在 O(1)(摊销)中执行此任务?

来自分类Dev

JavaScript如何获取此html以阅读此CSS并将我的脚本组织到表中

来自分类Dev

JavaScript如何获取此html以阅读此CSS并将我的脚本组织到表中

来自分类Dev

我将如何重构此C代码以摆脱重复

来自分类Dev

我将如何使用DP解决此问题?

来自分类Dev

我将如何重写此代码以使用Lambda

来自分类Dev

NumPy-我将如何矢量化此操作?

来自分类Dev

我将如何减少此算法的冗余性?

来自分类Dev

我将如何重新编写此硬币翻转循环

来自分类Dev

我将如何为sed编写此VIM命令?

来自分类Dev

我将如何修改此代码以获取异常错误?

来自分类Dev

如果可能的话,我将如何构建此查询?

来自分类Dev

我将如何使用此 JSON 创建 C# 对象

来自分类Dev

循环此代码时我将如何处理?

Related 相关文章

  1. 1

    我将如何提高此脚本的效率?

  2. 2

    Javascript:我将如何简化此代码?

  3. 3

    我将如何在Rust中编写此C函数?

  4. 4

    我将如何在文件中执行此操作?

  5. 5

    在 Oozie 中,我将如何使用脚本输出

  6. 6

    我将如何修改此脚本以递归转换所有文件?

  7. 7

    我将如何完成此Java代码?

  8. 8

    我将如何遍历此 API 数据

  9. 9

    我将如何在Mac终端中的Eclipse中编译此Java项目目录?

  10. 10

    我将如何在XML中重新创建此标准均衡器布局?

  11. 11

    我将如何在香草JS中执行此Ajax jQuery?

  12. 12

    我将如何在php和html中引用此代码

  13. 13

    我将如何使用Java与Selenium Webdriver中的此输入框进行交互?

  14. 14

    我将如何在cakePHP 2.x中编写此查询

  15. 15

    我将如何在XML中重新创建此标准均衡器布局?

  16. 16

    我将如何在 O(1)(摊销)中执行此任务?

  17. 17

    JavaScript如何获取此html以阅读此CSS并将我的脚本组织到表中

  18. 18

    JavaScript如何获取此html以阅读此CSS并将我的脚本组织到表中

  19. 19

    我将如何重构此C代码以摆脱重复

  20. 20

    我将如何使用DP解决此问题?

  21. 21

    我将如何重写此代码以使用Lambda

  22. 22

    NumPy-我将如何矢量化此操作?

  23. 23

    我将如何减少此算法的冗余性?

  24. 24

    我将如何重新编写此硬币翻转循环

  25. 25

    我将如何为sed编写此VIM命令?

  26. 26

    我将如何修改此代码以获取异常错误?

  27. 27

    如果可能的话,我将如何构建此查询?

  28. 28

    我将如何使用此 JSON 创建 C# 对象

  29. 29

    循环此代码时我将如何处理?

热门标签

归档