我在我的新项目中使用wavesurfer.js。(来源链接)它有一些方法可用于媒体播放器中的后向/前向。方法:skip()、skipBackward()、skipForward()
问题是,当您在最后一刻使用skip()/skipForward()时,在媒体结束之前,它从一开始就重新开始。我要在比赛结束时停止比赛。我不想要那个循环属性。我已经查过文件了。那里也什么都没有。它没有循环选项使其为假!
发布于 2022-08-03 19:18:03
这是我的密码:
(在本地主机上尝试它,因为CORS策略:无访问控制-允许-原产地错误)
// WaveSurfer Create Method
var WaveSurferElement = WaveSurfer.create({
container: '#wavesurfer',
waveColor: '#000068',
progressColor: '#9f5000',
skipLength: 5,
cursorWidth: 2,
barWidth: 3,
barRadius: 3,
barGap: 3,
});
// WaveSurfer Load Method
WaveSurferElement.load('../files/example.mp3');
// WaveSurfer Ready Event
WaveSurferElement.on('ready', function () {
// Enable Buttons
$('#play-btn,#forward-btn,#backward-btn').prop('disabled', false);
});
// WaveSurfer Play Event
WaveSurferElement.on('play', function () {
$('#play-btn').find('.icon').removeClass('fa-play').addClass('fa-pause');
$('#play-btn').attr('title', 'Pause');
$('#play-btn').attr('id', 'pause-btn');
});
// WaveSurfer Pause Event
WaveSurferElement.on('pause', function () {
$('#pause-btn').find('.icon').removeClass('fa-pause').addClass('fa-play');
$('#pause-btn').attr('title', 'Play');
$('#pause-btn').attr('id', 'play-btn');
});
// Play Button Action
$(document).on('click', '#play-btn', function () {
WaveSurferElement.play();
});
// Pause Button Action
$(document).on('click', '#pause-btn', function () {
WaveSurferElement.pause();
});
// Forward Button Action
$(document).on('click', '#forward-btn', function () {
WaveSurferElement.skipForward();
});
// Backward Button Action
$(document).on('click', '#backward-btn', function () {
WaveSurferElement.skipBackward();
});body {
direction: rtl;
}
.player-section {
position: relative;
width: 500px;
height: 350px;
background: linear-gradient(180deg, #000000 0%, #ff8100 50%, #000000 100%);
margin: 20px auto;
padding: 10px;
border-radius: 8px;
}
.player-section .player {
position: absolute;
left: 0;
right: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgb(255 255 255 / 70%);
border-radius: 8px;
}
.player-section .player,
.player-section .action {
box-shadow: 0 0 3px 0 #000000;
}
.player-section .player .wavesurfer {
margin-top: 90px;
}
.player-section .action {
position: absolute;
bottom: 0;
left: 0;
right: 0;
width: 100%;
text-align: center;
background-color: rgb(0 0 0 / 70%);
border-radius: 0 0 8px 8px;
}
.player-section .action .btn {
width: 150px;
height: 40px;
background-color: white;
font-family: Arial;
font-size: 18px;
border: 0;
margin: 10px 5px;
border-radius: 8px;
text-transform: uppercase;
}
.player-section .action .btn.play-btn {
width: 40px;
border-radius: 3px;
}
.player-section .action .btn.forward-btn .icon {
margin-left: 3px;
}
.player-section .action .btn.backward-btn .icon {
margin-right: 3px;
}
.player-section .action .btn:hover {
opacity: 80%;
cursor: pointer;
}<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>WAVESURFER.JS</title>
<!-- Styles -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css">
<!--/Styles -->
</head>
<body>
<div class="player-section">
<div class="player">
<div class="wavesurfer" id="wavesurfer"></div>
</div>
<div class="action">
<button class="btn forward-btn" id="forward-btn" title="Forward" disabled>
<i class="icon fa-solid fa-forward-fast"></i><span>Forward</span>
</button>
<button class="btn play-btn" id="play-btn" title="Play" disabled>
<i class="icon fa-solid fa-play"></i>
</button>
<button class="btn backward-btn" id="backward-btn" title="Backward" disabled>
<span>Backward</span><i class="icon fa-solid fa-backward-fast"></i>
</button>
</div>
</div>
<!-- Scripts -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/wavesurfer.js/6.2.0/wavesurfer.min.js"></script>
<!--/Scripts -->
</body>
</html>
正如我所说的,问题在于媒体何时即将结束,例如:关于演奏的波形
然后单击前进按钮,它跳到第一个媒体)示例:前进后波
因此,在这种情况下,我想暂停媒体&保持播放光标在最后。(或者停止)我不需要循环。我能做什么?!
https://stackoverflow.com/questions/73209725
复制相似问题