オンラインのストリーミングラジオのバックグラウンドミュージックやトークショーをバックグラウンドで再生しながら、簡単なWebページを作成したいと考えています。私はここで説明した方法に続い:https://productforums.google.com/forum/#!msg/chrome/hgxRgmT0INY/KR-CGxqdlN4JJavaScriptを使用してDOMにオブジェクトを追加した背景音楽
をそれがChromeで動作します。
<html>
<head>
<script language=javascript>
function setupSound()
{
var obj = document.createElement("object");
obj.width="0px";
obj.height="0px";
obj.type = "audio/mp3";
obj.data = "http://mr-stream.mediaconnect.hu/4736/mr1.mp3";
obj.setAttribute("id", "bgsound1");
var paramobj=obj.appendChild(document.createElement('param'));
paramobj.name="loop";
paramobj.value="-1";
var body = document.getElementsByTagName("body")[0];
body.appendChild(obj);
document.getElementsByName("button1")[0].onclick=function(){change_channel()};
}
function change_channel()
{
var channels=[
["Music: MR1-Kossuth","http://mr-stream.mediaconnect.hu/4736/mr1.mp3"],
["Music: none",""],
["Music: MKR","http://katolikusradio.hu:9000/live_hi.mp3"],
["Music: Karc FM","http://hosting.42netmedia.com:13100/;stream#.mp3"],
]
var channel_hash={};
var nextindex=0;
for (var i=0;i<=channels.length-1;i++) {
nextindex=(i+1) % channels.length;
channel_hash[channels[i][0]]=[channels[nextindex][0],channels[nextindex][1]];
}
document.getElementById("bgsound1").data=channel_hash[f2.button1.value][1]
f2.button1.value=channel_hash[f2.button1.value][0]
}
</script>
</head>
<body onload="setupSound()">
<center>
<form name='f2'>
<input type=button name='button1' value='Music: MR1-Kossuth'>
</form>
</center>
</body>
</html>
私はこのJSFiddleを作ったが、それはチャンネルを果たしていない、まったく音: https://jsfiddle.net/gxeqsnL3/1/ 私は音を考えていませんiframeのためオブジェクトがDOMに正しく接続されていません。 コードはGoogle Chromeで動作しますが、ストリーミングラジオチャンネルからバックグラウンドミュージックがうまく再生されます。
私の主な問題は、URLにセミコロンが含まれているチャンネルに切り替えるときに、ブラウザからダウンロードドキュメントを取得することです。しかし、セミコロンが本当に必要なのは、ShoutCastラジオストリームがHTML5オーディオプレーヤーでも正しく再生されないためです。
興味深い、全く私のために音が出ない。ボタンをクリックしてチャンネルを変更することはできますが、サウンドは再生されません。私は3つのブラウザを試しました。私はArch Linux、XFCEを使用しています。このバージョンにはセミコロンを含むURLが含まれています:http://jsfiddle.net/gxeqsnL3/19/ – Konstantin
JavaScriptでAudioオブジェクトを使用するだけで、同じ動作をしますが、 '
Thx、これは実際に動作します。 – Konstantin