再生ボリュームのコントロールの2重化

再生ボリュームのコントロールを「Shift+⇧」「Shift+⇩」のショートカット操作で行う機能は、以下の ver.8.2 で採り入れました。

 

 

この機能を導入してから、ボリュームコントロールが2重になる現象に出会いました。 下は極端な状態を作ったところですが、ポリュームスライダーが 2個あります。

 

2個のポリュームスライダー

 

 

この様になる意味を今回、漸く理解しました。 右側は「Video Player」本体のスライダーで、本来は非表示です。 それを「AmbTV Comfy」のショートカット操作の際に表示させたものです。 一方、「動画プレーヤー」のデフォルトデザインは、本体とは別に動画コントロールを用意し、ABEMAに都合の良い機能を実現しています。 ユーザーが操作するのはこれで、非表示のスライダーをリモート操作している状態です。

 

つまり、左側のスライダーはABEAMサイト製です。 当初は、右側のスライダーだけを操作するコードしかなく、左側のスライダーを表示すると、音量は操作前の表示となり、実際の音量と相違が出来る状態でした。 これを改善するため、両者の違いを修正するコードを採り入れましたが、2重化の状態を充分理解出来ていなかったので、問題を残したコードでした。(後から判ったのですが)

 

 

2個のスライダーをシンクロさせる関数

今回、問題の根本原因を把握できたので、ショートカット操作とマウス操作の両方で、常に同一の音量操作と表示を得られる関数を作りました。

 

「AmbTV Comfy」 ver.9.3   674行~

function slider_act(){
    let video=document.querySelector('.com-vod-VODScreen__player video'); // 🟨
    if(video){
        let vol=video.volume;
        let bar_h=document.querySelector('.com-a-Slider__bar');
        let bar=document.querySelector('.com-vod-VideoControlBar .com-a-Slider__bar');

        if(bar_h){
            let v_hight_h=getComputedStyle(bar_h).height.replace('px', '');
            let hilight_h=bar_h.querySelector('.com-a-Slider__highlighter');
            if(hilight_h){
                hilight_h.style.height=(v_hight_h/1)*vol +'px'; }}

        if(bar){
            let v_hight=getComputedStyle(bar).height.replace('px', '');
            let hilight=bar.querySelector('.com-a-Slider__highlighter');
            if(hilight){
                hilight.style.height=(v_hight/1)*vol +'px'; }}


        let VB=document.querySelector(
            '.com-vod-VideoControlBar .com-playback-Volume__icon-button');
        if(VB){
            if(VB.ariaLabel=="音声をオンにする"){ // ミュート解除
                VB.click(); }}}

} // slider_act()

 

非表示のスライダー(bar_h)と、通常のスライダー(bar)の両方について、実際の音量値に合わせてスライダーのバーの高さ(音量表示)が表示されるようにしています。 この関数を、音量調節の操作をする度に(つまりスライダーが表示される度に)実行します。 その結果、どちらのスライダーを操作しても、両方のスライダーが適切な表示になります。

 

 

ミュートの解除

何かの理由で「ミュート」が設定された状態になった時、マウス操作では、スライダーのドラッグまたは「 」ボタンのクリックで「ミュート」を解除できます。 しかしショートカットキー操作は音量調節ができても、「 」ボタンがミュート表示のままになります。

 

「ミュート」が設定された状態

 

 

音量上は問題ないが、ボタン表示は「ミュート」のままになり、これは正常な表示ではありません。 そこで、ショートカットで音量を操作したら、必ずミュートを解除する様にしたのが、上記のコード最後の 5行です。

 

以上、関数「slider_act()」の導入で、これまでの音量調節の問題を全て解決できると思います。

 

 

以上の修正・更新をした「AmbTV Comfyver.9.3 をアップロードしました。

 

 

 

「AmbTV Comfy」の操作マニュアル 

「AmbTV Comfy」の概要や操作の詳細は、以下のマニュアルを参照ください。

 

 

 

 

 「AmbTV Comfy」を利用するには

このツールは Chrome・Edge・Firefox版の拡張機能「Tampermonkey」上で動作します。 以下に、このツールの導入・更新の手順を説明します。

 

 

❶「Tampermonkey」を導入します 

◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。

既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。 

拡張機能の導入については、以下のページに簡単な説明があるので参照ください。

 

 

 

 ❷ スクリプトコードを登録・更新しま

「AmbTV Comfy」のコードは「GitHub」で配布しています。

 

● 以下のリンクを押すと「AmbTV Comfy」を初めて利用される場合は「インストール」、既に利用されている場合は「上書き」(更新)ができます。

 

 

 

● 下の様な確認画面が表示されたら、「スクリプト名(ツール名)」「バージョン」を確認して、「インストール」または「上書き」のボタンを押します。

 

Tampermonkey Tampermonkey v5.3.3 インストール

 

 

以上の操作で、「Tampermonkey」の「インストール済み UserScript」のリストに「AmbTV Comfy」の最新バージョンが登録・更新されます。

 

▪ ダッシュボードの画面は「 」リロードしないと、ツールリストに新しい登録が反映しません。

 

 

 

 「AmbTV Comfy」最新版に関する記事について 

Abemaサイトの変更などに対応して「AmbTV Comfy」を更新します。「自動更新」や手動による「更新」で、最新バージョンを利用することをお勧めします。

 

「AmbTV Comfy」の最新バージョンに関する記事は、以下のページのリンクリストから探せます。