0

こんにちは

拡張機能に問題があります。機能するラジオ プレーヤーを作成しましたが、ボリューム コントロールを追加しました。たとえば、スライダーをボリュームの 25% にスライドすると、オーディオのボリュームが 25% に下がります。 、ただし、ポップアップを閉じてから再度ポップアップを開くと、スライダーは 100% で、オーディオの音量は 25% です。

だから私がやろうとしているのは
、スライダーをポップアップが閉じられたときの値に保つことです。そのため、ユーザーがポップアップを再度開いたときに、スライダーの値は25%のままで、100%には戻りません


コード:
popup.html:

<a class="playback" href="#">
<img id="play" src="img/play.png" />
</a>

<div class="mutebtns">
<a id="mute-bt" href="#">
<img id="mute" rel='tipsy' src="img/unmuted.png" title="Mute" />
</a>
</div>

<div stle="display:inline;">Volume:<span id="val"></span></div>
<div id="slider"></div>

script.js:

var bgPage = chrome.extension.getBackgroundPage();

    // Volume control
    $(function() {
    $("#slider").slider({
    animate: "true",
    value : 100,
    step  : 1,
    range : 'min',
    min   : 0,
    max   : 100,
    slide : function( event, ui ){
      var value = $("#slider").slider("value");
        bgPage.$("#audio_player")[0].volume = parseFloat(value / 100);
      $("#val").html(ui.value + "%");
    }
    });
        $("#val").html($("#slider").slider("value") + "%");
    });

background.html:

<div id="audiocontainer">
    <audio id="audio_player" src="http://85.25.118.16:7502/;livestream.mp3" width="320" height="80"></audio>
    <div id="slider"></div>
</div>

前もって感謝します :)

4

2 に答える 2

1

<audio>スライダーの無関係な値ではなく、背景ページの要素から直接実際のボリュームを読み取ります。

$("#val").text(bgPage.$("#audio_player")[0].volume * 100 + "%");

設定を保持する場合は、値を に保存することを検討してlocalStorageください。

  slide : function( event, ui ){
    var value = $("#slider").slider("value");
    bgPage.$("#audio_player")[0].volume = parseFloat(value / 100);
    localStorage.setItem('volume', value);
    $("#val").html(ui.value + "%");
  }
});
var volume = localStorage.getItem('volume');
if (volume == null) {
    // Not saved yet, use default value
    volume = 100; // 100%
}
$("#val").text(volume + '%');

// And in the background page:
// After creating the <audio> element:
var volume = localStorage.getItem('volume');
if (volume == null) {
    // Not saved yet, use default value
    volume = 100; // 100%
}
audioElement.volume = volume / 100;

ボリュームを取得するために同じコードを繰り返す代わりに、関数を作成することをお勧めします。これにより、コードの保守が容易になります。

于 2012-12-26T13:42:49.043 に答える
0

スライダーの値を 100 に設定する代わりに、現在のボリュームに設定します。

value: $('#slider')[0].volume,
于 2012-12-26T13:07:16.647 に答える