2

拡張機能は、単純なブラウザー アクションです。押すと、オーディオのオン/オフが切り替わります。

私の理想的なワークフローは、ボタンを押してオンにすることです。もう一度押すとオフになります。もう一度押すと、現在の時刻で開始されます (以前に一時停止した時刻ではありません)。

私が調べたところ、HTML5 のオーディオ ストリーミングには、audio.stop() のようなバッファリングを停止する機能がありません。

これをハックする方法はありますか?オーディオをストリーミングしているバックグラウンド ウィンドウをオフにするか閉じて、必要なときに再読み込みすることはできますか? これにより、拡張機能も大幅に軽量化されると思います。

これが私のコードです(このコードは機能しますが、一時停止と再開が同時に行われます):

マニフェスト.json

{
"manifest_version": 2,

"name": "kcpr",
"version": "1.0",
"permissions": [
  "notifications"
],
"web_accessible_resources": [
  "icon.png"
],

"background": {
  "page": "music.html",
  "persistent": false
},

"browser_action": {
  "default_icon": "icon.png"   
}
} 

music.html

<audio id="stream" controls="" autoplay="" preload="none" name="media">
<source src="http://129.65.35.106:8000/KCPRMP3" type="audio/mpeg"></audio>

<script type="text/javascript" src="music.js"></script>

music.js

var playing = false;
var stream = document.getElementById("stream");  
stream.pause();

function doSomething() {   
    var startNotification = webkitNotifications.createNotification(
        'icon.png',
        'starting',
        'Starting!!'
    );
    var stopNotification = webkitNotifications.createNotification(
        'icon.png',
        'stopping',
        'Stopping!!!'
    );             
    if (playing == false) {
        startNotification.show();
        setTimeout(function(){ startNotification.cancel(); },1500);
        stream.play(); 
        playing = true;
    }
    else {
        stopNotification.show();
        setTimeout(function(){ stopNotification.cancel(); },1500);
        stream.pause();                
        playing = false;
    }
}

chrome.browserAction.onClicked.addListener(doSomething);
4

1 に答える 1

1
stream.src = '';
stream.src = null;

または、「空白」の mp3 dataURI に設定してみてください。ただし、上記は機能するはずです。

于 2013-06-03T23:21:37.750 に答える