Javascript 音频播放器启动时需要运行PHP脚本
我正在为一家电台制作一个网站。 我花了一段时间才找到一个不错的脚本,它可以从流中提取元数据,这样我就可以把它放在播放器下面的站点上。 所以我从一些比我聪明得多的人那里得到了PHP代码;) PHP脚本给出如下内容:string(15)“Toto-仅限您” 现在我面临两个问题Javascript 音频播放器启动时需要运行PHP脚本,javascript,php,Javascript,Php,我正在为一家电台制作一个网站。 我花了一段时间才找到一个不错的脚本,它可以从流中提取元数据,这样我就可以把它放在播放器下面的站点上。 所以我从一些比我聪明得多的人那里得到了PHP代码;) PHP脚本给出如下内容:string(15)“Toto-仅限您” 现在我面临两个问题 我需要Php脚本在播放器(脚本播放器)运行(单击播放按钮)时每60秒定时运行一次 PHP脚本吐出的值需要修剪,以不显示文本的字符串(15)部分 对于你们这些巫师来说,这可能是小菜一碟,但我在这里找不到实现这一点的方法。如果有人
<!-- RADIO PLAYER CODE -->
<script src="https://hosted.muses.org/mrp.js"></script>
<script type="text/javascript">
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
if( isMobile.any() ) {
MRP.insert({
'url':'http://live.radiorijen.nl/lq',
'codec':'mp3',
'volume':100,
'autoplay':false,
'buffering':5,
'title':'Radio Rijen LQ',
'welcome':'Welkom bij...',
'wmode':'transparent',
'skin':'alberto',
'width':250,
'height':95
});}
else
MRP.insert({
'url':'http://live.radiorijen.nl/hq',
'codec':'mp3',
'volume':100,
'autoplay':false,
'buffering':5,
'title':'Radio Rijen HQ',
'welcome':'Welkom bij...',
'wmode':'transparent',
'skin':'alberto',
'width':250,
'height':95
});
</script>
<!-- ENDS RADIO PLAYER CODE -->
var isMobile={
Android:function(){
返回navigator.userAgent.match(/Android/i);
},
黑莓:函数(){
返回navigator.userAgent.match(/BlackBerry/i);
},
iOS:function(){
返回navigator.userAgent.match(/iPhone | iPad | iPod/i);
},
Opera:函数(){
返回navigator.userAgent.match(/Opera-Mini/i);
},
Windows:function(){
返回navigator.userAgent.match(/IEMobile/i);
},
any:function(){
返回(isMobile.Android()| | isMobile.BlackBerry()| | isMobile.iOS()| | isMobile.Opera()| | isMobile.Windows());
}
};
if(isMobile.any()){
MRP.insert({
“url”:”http://live.radiorijen.nl/lq',
“编解码器”:“mp3”,
"卷":100,
“自动播放”:错误,
“缓冲”:5,
“标题”:“Rijen LQ电台”,
“欢迎”:“Welkom bij…”,
'wmode':'transparent',
“皮肤”:“阿尔贝托”,
“宽度”:250,
身高:95
});}
其他的
MRP.insert({
“url”:”http://live.radiorijen.nl/hq',
“编解码器”:“mp3”,
"卷":100,
“自动播放”:错误,
“缓冲”:5,
‘标题’:‘日仁电台总部’,
“欢迎”:“Welkom bij…”,
'wmode':'transparent',
“皮肤”:“阿尔贝托”,
“宽度”:250,
身高:95
});
Php脚本:
<?php
/**
* Please be aware. This gist requires at least PHP 5.4 to run correctly.
* Otherwise consider downgrading the $opts array code to the classic "array" syntax.
*/
function getMp3StreamTitle($streamingUrl, $interval, $offset = 0, $headers = true)
{
$needle = 'StreamTitle=';
$ua = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36';
$opts = [
'http' => [
'method' => 'GET',
'header' => 'Icy-MetaData: 1',
'user_agent' => $ua
]
];
if (($headers = get_headers($streamingUrl)))
foreach ($headers as $h)
if (strpos(strtolower($h), 'icy-metaint') !== false && ($interval = explode(':', $h)[1]))
break;
$context = stream_context_create($opts);
if ($stream = fopen($streamingUrl, 'r', false, $context))
{
while($buffer = stream_get_contents($stream, $interval, $offset)) {
if (strpos($buffer, $needle) !== false)
{
fclose($stream);
$title = explode($needle, $buffer)[1];
return substr($title, 1, strpos($title, ';') -2 );
}
$offset += $interval;
}
}
}
var_dump(getMp3StreamTitle('http://live.radiorijen.nl/hq', 19200));
echo "\n\n";
?>
setInterval
链接var\u转储(getMp3StreamTitle('http://live.radiorijen.nl/hq', 19200));代码>并确定输出的格式。您可以使用echo
或printf
。var\u dump()
为您提供了额外的细节
你开始编码了吗?StackOverflow是一个关于编程问题的网站。如果您不能向我们显示任何代码,我们将无法帮助您。感谢Kevin指出这一点。我已经用我正在使用的代码编辑了上面的条目。可能不是最好的代码,但它似乎做了它必须做的,现在让他们发挥好…我已经解决了PHP脚本输出原始字符串的问题。刚刚用ECHO替换了VAR_DUMP.)1个失败,1个失败。你应该将你的解决方案作为答案发布。这将帮助其他可能有同样问题的人。双赢。你解决了自己的问题,也帮助了别人。:)我一直在考虑使用sleep(60)并让PHP脚本自己重新运行的选项,但是您的建议是使用ajax来执行它可能会更好。我将四处寻找一些代码,这些代码允许我启动并运行计时器或停止php执行。