【发布时间】:2021-09-21 18:24:32
【问题描述】:
我正在使用一个名为wavesurfer 的波形显示/播放库。在我在下面创建的 sn-p 中,我有两个这样的 wavesurfer 对象被渲染并放置在“容器”类型的 div 元素中。我想将我自己的矩形放在这些 wavesurfer 对象之一上,并使用 javascript 控制它的位置。
我的问题是我不想使用浏览器窗口引用的绝对坐标。我想使用基于 wavesurfer 对象内的位置的相对坐标。此外,如您所见,即使我将矩形放在同一个 div 容器中,矩形也不会覆盖在波形上。
我是 javascript 新手,我意识到这可能是一个非常基本的问题,即在图片之类的东西上叠加形状,但到目前为止,我还没有找到适用于我正在工作的波形对象的解决方案与。
var wavesurfer = WaveSurfer.create({
container: "#waveform",
waveColor: "darkorange",
progressColor: "skyblue",
interact: false
});
wavesurfer.load("https://ia902606.us.archive.org/35/items/shortpoetry_047_librivox/song_cjrg_teasdale_64kb.mp3");
var wavesurfer2 = WaveSurfer.create({
container: "#waveform2",
waveColor: "silver",
progressColor: "gainsboro",
interact: false
});
wavesurfer2.load( "https://ia902606.us.archive.org/35/items/shortpoetry_047_librivox/song_cjrg_teasdale_64kb.mp3"
);
<body>
<script src="https://unpkg.com/wavesurfer.js"></script>
<script src="https://unpkg.com/wavesurfer.js/dist/wavesurfer.min.js"></script>
<script src="https://unpkg.com/wavesurfer.js/dist/plugin/wavesurfer.regions.min.js"></script>
<div class="container" style="display: flex">
<div id="waveform" style="width:60%"></div>
</div>
<div class="container" style="display: flex">
<div id="waveform2" style="width:60%"></div>
</div>
<div>
<input type="range" id="slider" name="range_slider" min="0" max="11">
<label for="range_slider">Range Slider</label>
</div>
<div id="selector">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="10" y="10" width="50" height="100" stroke="black" stroke-width="5" fill="none" />
</svg>
</div>
【问题讨论】:
标签: javascript html css wavesurfer.js