1
該擴展是一個簡單的瀏覽器操作。按下時,它會打開/關閉音頻。構建HTML5音頻流式Chrome擴展 - 如何停止緩衝流
我的理想工作流程是按下按鈕,它會打開;再次按下它將關閉;並第三次按它,它將在當前時間開始(而不是在先前暫停的時間)。
從我的研究中,HTML5音頻流不具有像audio.stop()這樣的停止緩衝的功能。
有沒有辦法破解這個?我是否可以簡單地關閉或關閉流式傳輸音頻的背景窗口,並在需要時重新加載它?我覺得這樣做也會使延伸更加輕量化。
這裏是我的代碼(此代碼的功能,但它暫停和繼續在相同的時間):
manifest.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);
這幫了我很多,所以謝謝。但是,每次我第二次加載頁面時,我都覺得性能下降很大。查看Chrome的網絡標籤,我可以看到「小心:請求尚未完成!」在流媒體請求。 – ldavid
@lucasdavid值得問一個新問題。這個問題(和答案)是從'13 – Xan