php 截取音频文件后缀名,使用PHP从音频流中提取音轨信息
这是一个PHP功能,让您从流媒体URL中提取MP3元数据(StreamTitle)。
通常,流服务器icy-metaint在响应中放置一个标题,告诉我们在流中发送元数据的频率。该函数检查该响应头,如果存在,它将用它替换interval参数。
否则,该函数调用关于您的间隔的流式URL,如果没有任何元数据,则它会再次尝试从offset参数开始的递归。<?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)) {
$buffer = stream_get_contents($stream, $interval, $offset);
fclose($stream);
if (strpos($buffer, $needle) !== false) {
$title = explode($needle, $buffer)[1];
return substr($title, 1, strpos($title, ';') - 2);
} else {
return getMp3StreamTitle($streamingUrl, $interval, $offset + $interval, false);
}
} else {
throw new Exception("Unable to open stream [{$streamingUrl}]");
}}var_dump(getMp3StreamTitle('http://str30.creacast.com/r101_thema6', 19200));
我希望这有帮助!
php 截取音频文件后缀名,使用PHP从音频流中提取音轨信息相关推荐
- c语言文件后缀名怎么隐藏起来,win10中怎样查看被隐藏的文件后缀名 win10显示文件后缀名的设置方法...
win10是一款不错的操作系统,但是有很多刚装的用户有很多疑问,那么win10中怎样查看被隐藏的文件后缀名?下面小编带来win10显示文件后缀名的设置方法,希望对大家有所帮助. win10显示文件后缀 ...
- linux命令 截取文件后缀名,Shell截取文件名和后缀(转载)
截取文件名和后缀 编写Shell脚本的过程中,经常会和文件名和文件路径打交道.如果用户输入了一个文件的全名(可能包含绝对路径和文件后缀),如何得到文件的路径名,文件名,文件后缀这些信息呢.Shell脚 ...
- 转--各种文件后缀名与打开方式大全
各种文件后缀名与打开方式大全 .aiff 声音文件 Windows media Player .!!! Netants 暂存文件 Netants .ani 动画鼠标 .arj 压缩文件 ARJ .av ...
- 文件按照文件后缀名归类方案
文件按照文件后缀名归类方案 import java.io.File; import java.io.FilenameFilter;public class TestFinal {public stat ...
- File类如何获取文件后缀名
File类如何获取文件后缀名 /*** 获取指定文件或文件夹的后缀名* @param fileName 文件名称* @return*/public static String getFileSuffi ...
- 前端判断文件后缀名_JS 获取文件后缀,判断文件类型(比如是否为图片格式)
1.获取文件后缀H3I免费资源网 有时候我们需要通过文件名或者路径,得到该文件的后缀名(扩展名),可以通过如下方式进行截取:H3I免费资源网 //文件路径 var filePath = "f ...
- 文件后缀名大全及其说明表
文件后缀名大全及其说明表 转自:http://wf66.com/bbs/200410/35382.htm A 对象代码库文件 AAM Authorware shocked文件 AAS Authorwa ...
- 根据文件后缀名利用正则表达式区分文件格式
上传功能在项目中经常用到,一般上传时要验证一下文件的格式是不是我们需要的.验证方法很多,而正则表达式经常会被用到. 比如我要上传的文件必须是图片格式,而且后缀名不区分大小写,可以这样写: // 根据名 ...
- 各种文件后缀名与打开方式大全a-d
各种文件后缀名与打开方式大全a-d 2012年01月11日 [b]扩展名 文件类型 打开方式[/b][b] .aiff 声音文件[/b][b] Windows media Player .!!! Ne ...
最新文章
- 小程序在canvas上层做图片滚动
- CVPR 2020: 移动端机器学习的研究实现
- 前端自动化工具 grunt 插件 uglify 的简单使用(一)
- Could not find artifact com.sun:tools:jar:1.5.0 解决办法
- Channel SDK (渠道SDK) for Unity
- Windows计算机功能Java源码
- android studio n3710,英特尔奔腾N3710性能跑分和评测 | ZMMOO
- 【Shell教程】三----运算符,条件判断
- 快来被子里 看看我的夜光收钱码!
- win10 开机启动_win10 -- 取消不需要的开机启动项和服务项加快win10系统开机速度...
- 程序员应该写文档吗?
- C语言的红外计数程序,51单片机红外计数器 电路原理图+PCB+源程序等资料分享
- QTreeWidget支持双击编辑Item节点的内容
- 详细的568A和568B线序
- python 矩阵元素平方_NumPy之计算两个矩阵的成对平方欧氏距离
- 如何组织一个高效的开发团队
- C++ OpenCV 抠商标图片文字背景透明
- python中大于0怎么表示_python怎么筛选列表中大于0的数据?
- 相亲小程序如何做到年入百万?盈利模式是什么?
- Leetcode 684: 冗余连接 Redundant Connection
热门文章
- IDEA快速 实现 SpringMVC 整合xfire 发布 WebService 服务
- javaScript PC端网页特效
- 虚拟服务器 端口管理,Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理...
- android 各版本市占率,Android各版本市占率:果冻豆遥遥领先
- c语言指针怎样代替二维数组,c语言 指针和二维数组
- C语言 __cplusplus - C语言零基础入门教程
- Python chr / ord 函数区别和使用 - Python零基础入门教程
- BugkuCTF-MISC题random color
- java欧洲_java欧洲/明斯克时区问题
- mysql的存储引擎详解_MySQL常见存储引擎详解