mp3代码分析(mp3结构解析)
admin 发布:2022-12-19 07:10 106
本篇文章给大家谈谈mp3代码分析,以及mp3结构解析对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、要一个解析MP3的代码要C语言的 要自己写的不要网上的
- 2、c语言程序设计MP3或MP4文件基本信息的解析
- 3、如何在Android代码中确定一个MP3的编码方式
- 4、如何用php提取mp3文件里的信息
- 5、html代码问题。谁知道MP3等音乐代码啊
- 6、网页MP3播放代码
要一个解析MP3的代码要C语言的 要自己写的不要网上的
#include stdio.h
#include string.h#define FILE_PATH "C:\\甩葱歌.mp3"
void main()
{
int i; //用于循环计数
struct MUSIC_TITAL_INFO
{
char ID3v1TAG[3]; //TAG
char MUSIC_NAME[30]; //存储标题信息
char Artist[30]; //存储歌手信息
char Album[30]; //存储专辑信息
char YEAR[4]; //存储年代信息
char Comments[28]; //存储备注信息,28个字节(有时为30字节)
char Genre; //存储音乐风格信息,保留位,1个字节
char Reserved; //保留位,1个字节(有时没有意思
char Track; //音轨(曲号)保留位,1个字节(有时没有)
}st1;
FILE *fp;
fp = fopen(FILE_PATH,"r");
if (fp == NULL) {
printf("can not open file!");
return;
}
fseek(fp,-128L,SEEK_END);
fread(st1,1,128,fp); //结构体中的变量全是char
// printf("%s-%s-%s-%s-%s-%s-%c-%c-%c.\n",\
// st1.ID3v1TAG,st1.MUSIC_NAME,st1.Artist,st1.Album,st1.YEAR,st1.Comments,\
// st1.Genre,st1.Reserved,st1.Track);
//打印TAG
printf("TAG:");
for(i= 0; i3; i++)
{
printf("%c",st1.ID3v1TAG[i]);
}
printf("\n");
//打印标题
printf("标题:");
for(i= 0; i30; i++)
{
printf("%c",st1.MUSIC_NAME[i]);
}
printf("\n");
//打印歌手信息
printf("歌手信息:");
for(i= 0; i30; i++)
{
printf("%c",st1.Artist[i]);
}
printf("\n");
//打印专辑信息
printf("专辑信息:");
for(i= 0; i30; i++)
{
printf("%c",st1.Album[i]);
}
printf("\n"); //打印年代信息
printf("年代信息:");
for(i= 0; i4; i++)
{
printf("%c",st1.YEAR[i]);
}
printf("\n"); //备注
printf("备注:");
for(i= 0; i28; i++)
{
printf("%c",st1.Comments[i]);
}
printf("\n"); //音乐风格信息
printf("音乐风格信息:");
printf("%c",st1.Genre);
printf("\n"); //保留位
printf("保留位:");
printf("%c",st1.Reserved);
printf("\n");
//音轨
printf("音轨:");
printf("%c",st1.Track);
printf("\n");
fclose(fp);
}
c语言程序设计MP3或MP4文件基本信息的解析
找了个MP3看了下,comment是29个字节。
可参考
拿VC的C语言写了下:
头文件:
#include stdio.h
// TODO: reference additional headers your program requires here
#define MP3_ID3_LENGTH 10
typedef struct tag_ID3_INFO
{
} ID3_INFO;
#define IDENTIFY_LEN 3
#define TITLE_LEN 30
#define ARTIST_LEN 30
#define ALBUM_LEN 30
#define YEAR_LEN 4
#define COMMENT_LEN 30
#define GENRE_LEN 1
// IDENTIFY_LEN + TITLE_LEN +...
#define MP3_INFO_LENGTH 128
typedef struct tag_MP3_INFO
{
char Identify[IDENTIFY_LEN + 1]; //TAG三个字母
//这里可以用来鉴别是不是文件信息内容
char Title[TITLE_LEN + 1]; //歌曲名,30个字节
char Artist[ARTIST_LEN + 1]; //歌手名,30个字节
char Album[ARTIST_LEN + 1]; //所属唱片,30个字节
char Year[YEAR_LEN + 1]; //年,4个字节
char Comment[COMMENT_LEN + 1]; //注释,28个字节
char Genre[GENRE_LEN + 1]; //类型 ,1个字节
} MP3_INFO;
C文件:
#include string.h
#define MP3_OK 1
#define MP3_ERROR 1
FILE *OpenMp3File(char *pFileName);
int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo);
int OutputMP3Info(MP3_INFO *pstMp3Info);
int main(int argc, char* argv[])
{
FILE *pFile = NULL;
MP3_INFO stMp3Info = {0};
char *pfname = "E:\\Project\\MP3\\test.MP3";
pFile = OpenMp3File(pfname);
if (NULL == pFile)
{
return MP3_ERROR;
}
ReadMP3Info(pFile, stMp3Info);
printf("\r\nMP3 file: %s", pfname);
OutputMP3Info(stMp3Info);
printf("Hello World!\n");
return MP3_OK;
}
FILE *OpenMp3File(char *pFileName)
{
FILE *pFile = NULL;
pFile = fopen(pFileName,"rb");
if (NULL==pFile)
{
printf("open read file error!!");
return NULL;
}
return pFile;
}
int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo)
{
int len = 0;
if ((NULL == pFile) || (NULL == pstInfo))
{
return MP3_ERROR;
}
fseek(pFile, 0, SEEK_END);
len = ftell(pFile);
if (len = (MP3_INFO_LENGTH + MP3_ID3_LENGTH))
{
return MP3_ERROR;
}
memset(pstInfo, 0, sizeof(MP3_INFO));
fseek(pFile, -MP3_INFO_LENGTH, SEEK_END);
len = fread((char *)(pstInfo-Identify), 1, IDENTIFY_LEN, pFile);
len += fread((char *)(pstInfo-Title), 1, TITLE_LEN, pFile);
len += fread((char *)(pstInfo-Artist), 1, ARTIST_LEN, pFile);
len += fread((char *)(pstInfo-Album), 1, ALBUM_LEN, pFile);
len += fread((char *)(pstInfo-Year), 1, YEAR_LEN, pFile);
len += fread((char *)(pstInfo-Comment), 1, COMMENT_LEN, pFile);
len += fread((char *)(pstInfo-Genre), 1, GENRE_LEN, pFile);
if (MP3_INFO_LENGTH != len)
{
return MP3_ERROR;
}
return MP3_OK;
}
int OutputMP3Info(MP3_INFO *pstMp3Info)
{
printf("\r\nTag : %s", pstMp3Info-Identify);
printf("\r\nTitle : %s", pstMp3Info-Title);
printf("\r\nArtist : %s", pstMp3Info-Artist);
printf("\r\nAlbum : %s", pstMp3Info-Album);
printf("\r\nYear : %s", pstMp3Info-Year);
printf("\r\nComment: %s", pstMp3Info-Comment);
return MP3_OK;
}
测试:
MP3 file: E:\Project\MP3\test.MP3
Tag : TAG
Title : TrackTitle
Artist : ArtistName
Album : AlbumTitle
Year : 2012
Comment: This is a comment
如何在Android代码中确定一个MP3的编码方式
用过sketch的同学应该都有过这样的体验,在刚接触sketch的时候基本上都为导出(Export)这个功能发过愁吧。我当时就为此纠结过好久,直到后来翻阅了各种资料问过了各位大神当时才导出几张交互稿来。(也可能是因为笔者太笨了囧
sketch里面的导出模块的设置位于整体界面的左上角,当然也可以从最顶的菜单栏通过FileExport进入,这个比较基础想必大家也都了解,我就不再赘述了。
如何用php提取mp3文件里的信息
在提取信息的之前,要先把指定目录下的mp3文件找出来,下面是提取mp3文件的代码片段:
$thisdir=dir(".");
while($file=$thisdir-read()) {
if((!is_dir("./$file")) and ($file!=".") and ($file!=".."))
{
$mp3=strstr($file,".");
if($mp3==".mp3"){
echo "
$file
";
echo " ";
}
}
这段代码可以把指定目录下的mp3文件显示出来(改例的保存文件的目录)。
下一步就是在提取出来的mp3文件中的信息再提取出来,下面是程序片段:
$fp=fopen($file,"r");
$content=fread($fp,filesize($file));
$content=strstr($content,"TAG");
echo "$content";
由于信息是以TAG字符串开头的,所以就用strstr函数找第一个出现的tag标记,然后把后面的字符串显示出来,这就是mp3文件中的信息了,当然,这些信息很乱,你可以用字符串函数把提取出来的信息在分析处理一下,得到有用的信息。
html代码问题。谁知道MP3等音乐代码啊
1. 如何贴rm,ra,ram类型的音乐,代码如下:
embed width="0" height="0" type="audio/x-pn-realaudio-plugin" autostart="true" controls="ControlPanel" src="";
2. 如何贴midi,asf,wma,asx类型的音乐,代码如下:
embed autostart="true" loop="-1" controls="ControlPanel" width="0" height="0" src="";
只需要把整段代码copy复制到文章中(编辑文章的时请先点击HTML代码模式再粘贴代码,否则这段代码会以文本形式显示出来,不能被执行),用你喜欢及可用的音乐文件的URL(网址)代替上面红色显示的音乐地址代码就可以了。
造成音乐不能成功播放的大多数原因:
A:音乐文件错误,有可能这个文件本身就不是音乐的文件,只是一个普通的HTML页面。
B:音乐文件地址错误,这个音乐文件根本不存在。
C:没有安装相关的播放软件。
测试的办法:请把音乐文件地址在IE栏输入,如果提示你保存,保存的文件类型是rm、ram、midi等的文件即是音乐文件。如果打开这个文件是自动播放音乐或显示其他内容的,则不是。
添加带音乐的flash,然后在弹出窗口输入你的FLASH地址,注意后戳名为:,大小可以调整为,1*1,这样可以在不显示FALSH的情况下播放音乐,但是记住要为自动播放的,不要找那种需要按开始的FLASH
加入一段在线音乐播放代码,推荐使用:IFRAME marginHeight=0 src=""; frameBorder=0 noResize width=540 scrolling=no height=25 将此代码放入网站合适地方,将24小时不间断放歌,次代码由清风网络电台提供
以下代码由[秋天的风]提供:首先打开我的文章,进入编辑状态,选择HTML格式然后就可以输入了,下面我们来看代码,首先来看第一种,比较简单的:
bgsound src=”url” loop=-1
“url”依然是路径名,loop表示循环数,-1表示始终循环
来看第二种:
EMBED src="music.mid" autostart="bool" loop="n" width="m" height="k"
其中各个属性的含义如下:
SRC:音乐文件路径
(以下可选) AUTOSTART:音乐文件上传完后自动播放,TRUE为播放,FALSE为否
LOOP:设置循环TRUE为自动循环,FALSE为不循环,数值为次数
WIDTH,HEIGHT为播放控制面板的宽和高,
其余的属性有:
volume:取值范围为"0-100",设置音量,默认为系统本身的音量
starttime:"分:秒",设置歌曲开始播放的时间,如,starttime="00:10",从第10秒开始播放
endtime: "分:秒",设置歌曲结束播放的时间
controls :控制面板的外观controls="console/smallconsole/playbutton/ pausebutton/stopbutton/volumelever" ·console 正常大小的面板
·smallconsole 较小的面板
·playbutton 显示播放按钮
·pausebutton 显示暂停按钮
·stopbutton 显示停止按钮
·volumelever 显示音量调节按钮
hidden: 为true时可以隐藏面板
——以下代码由[风之舞]提供:
背景音乐代码精简
1、embed src="背景音乐网址" hidden="true" autostart="true" loop="true"
--------hidden="true"表示隐藏播放,即不显示播放器的外观,若要想显示,把"true" 替换为"false"即可,这样为默认是最小化播放,若还想具体显示播放器的大小,另加上height="高度值" width="宽度值" 就可以了。
-------autostart="true"表示当前页一载入则自动播放,若不希望播放改为autostart="false"
即可...
------ loop="true"表示无限次循环播放音乐直到当前页关闭为止,不想循环播放替换为 loop="false"就OK了
2、embed src="背景音乐网址" autostart="true" loop="-1" controls="ControlPanel" width="0" height="0"
-----------loop="-1" 表示无限次循环播放,可设置播放次数,用具体数字代替即可,比如我希望它播放两次,则loop="2"
---------controls="ControlPanel"这个控制选项可省略
--------width="0" height="0"表示隐藏播放,和前面的一样。
若欲设置播放器的外观,则替换为具体的数值就可以了,比如width="123" height="100"
其实要说最简化的播放背景音乐的代码,则下面的代码是最简单的了---
embed src="背景音乐网址"
另外:bgsound src="背景音乐路径" loop="-1"
这个只支持IE浏览器,而且是完全下载完后才开始播放,不像前面所说的格式那样可以一边缓冲一边播放。这个一般用于mid音乐或较小的mp3,wav格式的音乐. 若是较大的文件还是用前面所说的格式吧~~
bgsound src="背景音乐路径" loop="-1"这个随浏览器的打开而播放,当最小化窗口时即停止播放,当最大化窗口时又开始播放。
embed src="背景音乐网址" autostart="true" loop="-1" controls="ControlPanel" width="0" height="0" 常用于mid,,wav,mp3类型的音乐类型.
这个则不管是否最小化窗口都始终播放,直至关闭当前窗口为止~~
支持的音乐文件类型:只支持MP播放器所支持的音乐格式,比如mp3,asf,wma,asx等等..不支持rm,ram....
视频文件的插入方法也和上面所说的一样,设置好合适的
音乐代码解释
embed autostart="true" loop="-1" controls="ControlPanel" width="0" height="0" src=""
解释一下:
AUTOSTART="TRUE / FALSE"
是否要在音乐档传完之后,就自动播放音乐。 TRUE 是要
FALSE 是不要,内定值是不要。
LOOP="TRUE / FALSE / 整数"
设定是否要自动反覆播放,LOOP=2 表示重复两次,若要无限次重复可用 LOOP="TRUE"
WIDTH 和 HIGH="整数"
设定控制面版的宽度和高度
CONTROLS="CONSOLE / SMALLCONSOLE /
PLAYBUTTON / PAUSEBUTTON / STOPBUTTON /
VOLUMELEVER"
设定控制面板的样子,预设值是 CONSOLE
CONSOLE 一般正常的面板
SMALLCONSOLE 较小的面板
PLAYBUTTON 只显示播放按钮
PAUSEBUTTON 只显示暂停按钮
STOPBUTTON 只显示停止按钮
VOLUMELEVER 只显示音量调整钮
这个是古槐搜集的
网页MP3播放代码
WMP加入了ActiveX解码器控件,不仅可以放曲子,还能放Flash和其它视频文件
.*.*/video/story/chinese/hynh/b.wmv"
...
n/nsmp2inf.cab#Version=5,1,52,701"
想用WMP连续播放请参照ASX元文件使用讲解:使用ASX播放列表吧
上面的这个播放器是老式的那种,6.4版本!新式播放器是在MediaPlayer9.0以后出现的,也就是说只有装了9.0或9.0以上的播放器才能正常使用的。
下面是新式播放器代码,相对以前的来说要简单很多:
是否自动播放
调整左右声道平衡,同上面旧播放器代码
播放器是否可人为控制
是否启用上下文菜单
播放的文件地址
播放次数控制,为整数
播放速率控制,1为正常,允许小数,1.0-2.0
控件设置:当前位置
控件设置:当前标记
显示默认框架
脚本命令设置:是否调用URL
脚本命令设置:被调用的URL
是否按比例伸展
默认声音大小0%-100%,50则为50%
是否静音
播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示
如果是0可以允许全屏,否则只能在窗口中查看
开始播放是否自动全屏
是否启用错误提示报告
SAMI样式
SAMI语言
字幕ID
mp3代码分析的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mp3结构解析、mp3代码分析的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-18网络营销案例具体分析,网络营销案例具体分析模板
- 05-15seo分析报告,做seo的分析工具有哪些
- 05-09网页代码,网页代码快捷键
- 05-07aso优化分析,aso优化方法
- 05-06单页网站的代码(完整的网页代码)[20240506更新]
- 05-06个人主页图片代码(个人主页图片代码怎么弄)[20240506更新]
- 05-06提取微信名片代码(微信名片信息提取)[20240506更新]
- 05-06php后台权限管理代码(php管理员权限)[20240506更新]
- 05-06付费观看代码php(付费观看代码)[20240506更新]
- 05-06在线html执行代码(html怎么运行)[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接