javascript - 如果单击“静音”,则音量滑动 = 0
问题描述
好吧,标题说明了一切。
当您将音量滑到 0 时,我设法连接它,它已静音,但现在我遇到了这样的问题:如果静音,音量滑块应为 0。
我尝试了一些代码组合,但似乎无法理解它。
html:
<div class="controls">
<span class="columns small-8 medium-6 text-left">
<span *ngIf="!playing" class="playpause" (click)="videoHandler('play')">
<i class="fa fa-play" aria-hidden="true" ></i>
</span>
<span *ngIf="playing" class="playpause" (click)="videoHandler('pause')">
<i class="fa fa-pause" aria-hidden="true" ></i>
</span>
<span *ngIf="!muted" class="speaker" (click)="videoHandler('mute')">
<i class="fa fa-volume-up" aria-hidden="true" ></i>
</span>
<span *ngIf="muted" class="speaker" (click)="videoHandler('unmute')">
<i class="fa fa-volume-off" aria-hidden="true" ></i>
</span>
<span class="volumeslider">
<input type="range" name="volume" min="0" max="1" step="0.05" value="1" (input)="videoHandler('volume', $event)">
</span>
</span>
</div>
打字稿:
public videoHandler(fn: any, e: any): void {
let element = this.videoplayer.nativeElement;
switch (fn) {
case 'play':
element.play();
this.playing = true;
break;
case 'pause':
element.pause();
this.playing = false;
break;
case 'fullscreen':
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
}
break;
case 'mute':
element.muted = true;
this.muted = true;
break;
case 'unmute':
element.muted = false;
element.removeAttribute('muted');
this.muted = false;
break;
case 'volume':
element.volume = e.target.value;
this.muted = e.target.value === '0';
element.muted = e.target.value === '0';
break;
case 'download':
let src = e.target.dataset.vsr;
let id = e.target.dataset.vid;
this.downloadEmitter.emit({
video: src,
video_id: id
});
default:
break;
}
}
当然这很简单,但是看了几天这个并没有让我有新的想法。
解决方案
如果您需要这个,答案很简单,我将在此处发布代码:
<div class="controls">
<span class="columns small-8 medium-6 text-left">
<span *ngIf="!playing" class="playpause" (click)="videoHandler('play')">
<i class="fa fa-play" aria-hidden="true" ></i>
</span>
<span *ngIf="playing" class="playpause" (click)="videoHandler('pause')">
<i class="fa fa-pause" aria-hidden="true" ></i>
</span>
<span *ngIf="!muted" class="speaker" (click)="videoHandler('mute'); slider.value = 0" >
<i class="fa fa-volume-up" aria-hidden="true" ></i>
</span>
<span *ngIf="muted" class="speaker" (click)="videoHandler('unmute'); slider.value = 1">
<i class="fa fa-volume-off" aria-hidden="true" ></i>
</span>
<span class="volumeslider">
<input type="range" name="volume" min="0" max="1" step="0.05" value="1" (input)="videoHandler('volume', $event); slider.value = $event.target.value" class="volumeslide" #slider>
</span>
</span>
</div>
所以我错过的是添加slider.value = number
静音或取消静音。
推荐阅读
- java - 即使表中存在数据,Hiibernate 条件也会返回空实体
- javascript - Javascript:更新超时而不重新创建它
- azure - Azure SendGrid 每个键的不同域品牌
- php - 如果有可用描述,如何仅显示类别描述和标题?
- android - NestedScrollview 不适用于 Drawerlayout
- tensorflow - 如何从训练有素的 keras 模型中找到等效的 ONNX 运算符?
- vba - VBA中的索引匹配匹配/vlookup
- jmeter - 如何在 JMeter 中执行线程以完全填充以下场景?
- javascript - Electron.js:如何为一个窗口创建一个单独的下载 webContents.session?
- sql-server - 从哪里获得 Sql server 2019 32 位