MP3播放1

合集下载

基于stm32的多功能mp3音乐播放器设计开题报告文献综述参考大学论文

基于stm32的多功能mp3音乐播放器设计开题报告文献综述参考大学论文

衡水学院
毕业论文(设计)
学生姓名: 陈进进
系别: 物理与电子信息系
专业: 电子信息工程
年级: 2012级
指导教师: 郭海丽
归档日期: 2016年6月10日
衡水学院教务处印制
1
毕业论文(设计)任务书
(指导教师填写)
毕业论文(设计)开题报告
3
5
说明:开题报告应在教师指导下由学生独立撰写,开题报告一般不少于1000字,并交指导教师审阅。

毕业论文(设计)开题报告论证记录
毕业论文(设计)文献综述
说明:查阅文献资料篇数,按《衡水学院毕业论文(设计)撰写规范》执行。

文献综述一般不少于1000字。

可增加页数,遵循整页布满
第I 页共18 页。

戒为良药MP3朗读版-第1季【声音字幕同步PPT】

戒为良药MP3朗读版-第1季【声音字幕同步PPT】
它。 广告的原理正是如此,开始你可能会厌恶某个广 告,久而久之厌恶感可能就消失了,渐渐就接受
了。
大家一定要有意识地进行洗脑,不断地重复,重 复,再重复,要满脑子全是洗脑的内容,每天早 上起来洗,白天有空就洗,晚上也洗,这样洗脑 一段时间,你就会发现自己思想意识形态在发生 某种改变,以前那个污秽思想的你已经完全消失 了,取而代之的是一个崭新的你,当然有“洗脑 意识”还不够,还需要达到“洗脑强度”,很多 戒友知道一些戒色知识,但缺少的正是“洗脑强
度”,强度不够,剂量不够,效果就不同。
(本文是应一个戒友的建议而写,大家有什么疑 问可以提出来,有问必答,希望帮助到大家)
次和这个敌人打都输得很惨烈。 而很多戒友破戒后总是把原因归咎于没毅力, 没自制力,这其实还是认识不深刻,以我的经验 来讲,仅仅靠意志力和毅力来强戒,难度极大, 除非这个人是“戒色烈士,宁死不手”,但这种
我在这里要向大家普及一个很重要很重要的概 念:洗脑!
相信大家都听说过这个词,那些真正戒除的其实 都是洗脑特别彻底的人。
关于洗脑,其实你可以研究下宗教,当然也包 括“不好的宗教”,也包括传销,这里面都会涉 及到一个概念,那就是“洗脑”,通过系统的洗 脑,人完全可以变成另外一个人,懦夫能变成勇 士,就像阿拉伯国家的人弹,宗教洗脑的力量极
大家会有疑问,比如怎么洗脑,用什么洗脑。 其实你活在这个世界上,每天都在接受传媒各种 各样的洗脑,只是那是无意识地洗脑,向你灌输 某种概念,某种价值取向,根据心理学原理,一 种概念久而久之的灌输,你就会自然而然地接受
戒为良药MP3朗读版-第1季
屡戒屡败的根本原因:【洗脑不彻底】。 有问必答!
本人在戒色吧泡了一年左右,看见无数戒友的 失败,很多戒友每次都信誓旦旦地要戒,决心极 大,没过多久就败下阵来,破戒的人会很懊丧,

酷比魔方mp3说明书

酷比魔方mp3说明书

酷比魔方mp3说明书篇一:酷比魔方● 认识播放器● 按键功能定义1.“”:上一曲,快退,向上选择,上翻页,音量减。

2.“ M ”:菜单键,确认,退出。

3.“ ”:播放键,暂停,停止,开机,关机。

4.“ ”:下一曲,快进,向下选择,下翻页,音量加。

5.“ V ”:进入音量调节模式,返回,退出上一级菜单或目录。

6.“On/OFF”:电源开关。

● 显示屏● 电量本机采用4级电量监控。

电量为3.9V以上,显示全满。

随着使用时间的增加,电量指示会减小。

当电量几乎完全用完时,电量图标中间变为空白,此时应该及时充电。

☆注意:充电时,必须打开电源开关进行充电。

否则播放器将无法响应充电任务。

放器的情况下,请尽量关闭电源。

● 基本功能? 进入菜单通过按“M”键可以进入各种菜单。

菜单分为主菜单,2级菜单或文件目录。

在音乐播放的状态下短按“M”键进入播放列表 ? 浏览操作在音乐播放的状态下短按“M”键或直接进入资源管理器可以浏览文件目录。

? 进入不同功能模式在主菜单短按“”和“ ”键可以选择不同的功能模式,再短按“M”键进入该功能。

长按“M”键退回到主菜单。

? 调节音量按“V? 开机/关机关机状态下将电源开关拨在ON? 播放或停止? 开始录音(短按)/ 暂停录音(短按)M”保存录音并退出到主菜单● 播放音乐● 简单操作1. 将耳机插入耳机孔内。

2. M”进入“音乐模式”开始播放音乐。

3. 选择音乐:4. 控制音量:按“V”键进入音量选择,● 音效模式1. 音乐播放中,短按“M”键进入音乐播放模式,长按“M”键返回到主菜单。

2. 4. M”键确认。

3. 本机支持8种音效(EQ)模式:正常、3D、摇滚、流行、古典、重低音、爵士、用户自定。

● 歌词同步显示播放器支持“*.LRC”歌词文件,使用时需将歌词文件的名称与歌曲文件的名称保持一致。

例如,歌曲文件名称为“陈慧琳—替换.mp3”,则歌词文件名称必须为“陈慧琳—替换.lrc”● 收音机(部分机型无此功能)1.收音机”选项。

playsound1的用法

playsound1的用法

playsound1的用法playsound是一个Python库,用于播放音频文件。

它是一个简单易用的工具,可以在不涉及复杂的音频处理需求时,将音频文件直接播放出来。

在本文中,我将详细解释playsound的用法,并提供一些基本示例供读者参考。

首先,为了使用playsound库,我们需要先安装它。

可以通过在命令行中运行以下命令来安装playsound:pip install playsound安装完毕后,我们可以在Python代码中使用它。

首先,让我们导入playsound库:pythonfrom playsound import playsound接下来,我们可以使用playsound函数来播放音频文件。

playsound函数接受一个参数,这个参数是音频文件的路径。

例如,如果我们有一个名为"sound.mp3"的音频文件,并且它与我们的Python代码位于同一目录中,我们可以使用以下代码播放该音频:pythonplaysound("sound.mp3")注意,在使用playsound函数时,我们需要提供音频文件的绝对路径或相对路径。

如果文件与我们的Python代码位于同一目录中,可以使用文件名来引用它。

否则,我们需要提供文件的完整路径。

此外,playsound还提供了一些可选参数,用于调整音频播放的设置。

其中最常用的参数是`block`参数。

默认情况下,playsound函数在调用后会立即返回,而不等待音频播放完成。

但是,如果将`block`参数设置为True,那么playsound函数将会阻塞,直到音频播放完成后才会返回。

以下是一个使用`block`参数的示例:pythonplaysound("sound.mp3", block=True)使用`block=True`可以确保程序在音频播放完成后继续执行。

另一个可选参数是`volume`参数,用于调整音频的音量大小。

如何用VB实现MP3播放功能

如何用VB实现MP3播放功能

如何用VB实现MP3播放功能? 2004-9-29黑客基地本文作者曾经读过不少关于如何用VB实现播放MP3格式音乐文件的文章。

这些文章所介绍的方法都具有一个相同的特点,即要借助某个第三方提供的具有专门的MP3解码功能的控件。

能不能直接利用VB自身所提供的多媒体控件来实现MP3播放功能呢?答案是肯定的。

任何一种编码格式的音、视频文件都要通过其相应的解码器解码后才能实现播放的目的,MP3也不例外。

Microsoft在Win9x系统中已经内置了MP3的解码驱动,因此我们完全可以利用它直接对MP3进行解码,从而实现播放MP3的目的。

在编码上,我们只需在C:\windows\system.ini文件的[MCI]项目中添加命令行:mp3audio=mciqtz.drv 使VB自身所提供的多媒体控件能够正确调用相应的解码器对MP3进行解码就足够了。

下面就让我们利用VB自带的MMControl控件做一个MP3播放器实例。

实现步骤如下:一、绘制窗体:(见下图)1.新建一个工程,在窗体中加入MMControl控件,名称为MP3Player(通过在工具箱上单击鼠标右键弹出的菜单中选择[部件],并在弹出的部件对话框中选中Microsoft Multimedia Control 6.0 可以将MMControl控件添加至工具箱中备用)。

CommonDialog控件,名称为CommonDialog1。

两个Label控件,名称分别为TitleWnd、FileNameWnd。

2.利用菜单编辑器建立菜单[文件],创建两个菜单项,一为[打开](名为file_open),一为[退出](名为file_exit)二、在工程中加入一个模块,编写播放MP3的过程代码以备调用三、程序编码1.form1中的代码:2.模块中的代码:关于MMControl控件的详细使用方法请参考MSDN,本程序调试环境:Win98SE,Visual Basic 6.0企业版。

GStreamer编写一个简单的MP3播放器

GStreamer编写一个简单的MP3播放器

本文介绍如何使用GStreamer编写一个简单的MP3播放器。

1,需要使用mad解码插件,因此需要先安装gstreamer0.10-plugins-ugly2,编写mp3播放器下面来看看如何利用GStreamer框架提供的组件,来实现一个简单的MP3播放器。

数据源元件负责从磁盘上读取数据,过滤器元件负责对数据进行解码,而接受器元件则负责将解码后的数据写入声卡。

如果想要在程序中应用GStreamer提供的各种功能,首先必须在主函数中调用gst_init ()来完成相应的初始化工作,以便将用户从命令行输入的参数传递给GStreamer函数库。

一个典型的GStreamer应用程序的初始化如下所示:#include<gst/gst.h>int main(int argc,char*argv[]){gst_init(&argc,&argv);/**/}接下去需要创建三个元件并连接成管道,由于所有GStreamer元件都具有相同的基类GstElement,因此能够采用如下方式进行定义:GstElement*pipeline,*filesrc,*decoder,*audiosink;管道在GStreamer框架中是用来容纳和管理元件的,下面的代码将创建一条名为pipeline的新管道:/*创建用来容纳元件的新管道*/pipeline=gst_pipeline_new("pipeline");数据源元件负责从磁盘文件中读取数据,它具有名为location的属性,用来指明文件在磁盘上的位置。

使用标准的GObject属性机制可以为元件设置相应的属性:/*创建数据源元件*/filesrc=gst_element_factory_make("filesrc","disk_source");g_object_set(G_OBJECT(filesrc),"location",argv[1],NULL);过滤器元件负责完成对MP3格式的数据进行解码,最简单的办法是安装mad这一插件,借助它来完成相应的解码工作:/*创建过滤器元件*/decoder=gst_element_factory_make("mad","decoder");接收器元件负责将解码后的数据利用声卡播放出来:/*创建接收器元件*/audiosink=gst_element_factory_make("audiosink","play_audio")已经创建好的三个元件需要全部添加到管道中,并按顺序连接起来:/*添加元件到管道中*/gst_bin_add_many(GST_BIN(pipeline),filesrc,decoder,audiosink,NULL);/*通过衬垫连接元件*/gst_element_link_many(filesrc,decoder,audiosink,NULL);所有准备工作都做好之后,就可以通过将管道的状态切换到PLAYING状态,来启动整个管道的数据处理流程:/*启动管道*/gst_element_set_state(pipeline,GST_STATE_PLAYING);这里加入一个消息处理函数bus_call来监视产生的消息/*终止管道*/gst_element_set_state(pipeline,GST_STATE_NULL);/*释放资源*/gst_object_unref(GST_OBJECT(pipeline));3,完整的源代码如下所示:#include<gst/gst.h>#include<glib.h>//定义消息处理函数,static gboolean bus_call(GstBus*bus,GstMessage*msg,gpointer data){GMainLoop*loop=(GMainLoop*)data;//这个是主循环的指针,在接受EOS消息时退出循环switch(GST_MESSAGE_TYPE(msg)){case GST_MESSAGE_EOS:g_print("End of stream\n");g_main_loop_quit(loop);break;case GST_MESSAGE_ERROR:{gchar*debug;GError*error;gst_message_parse_error(msg,&error,&debug);g_free(debug);g_printerr("ERROR:%s\n",error->message);g_error_free(error);g_main_loop_quit(loop);break;}default:break;}return TRUE;}int main(int argc,char*argv[]){GMainLoop*loop;GstElement*pipeline,*source,*decoder,*sink;//定义组件GstBus*bus;gst_init(&argc,&argv);loop=g_main_loop_new(NULL,FALSE);//创建主循环,在执行g_main_loop_run后正式开始循环if(argc!=2){g_printerr("Usage:%s<mp3filename>\n",argv[0]);return-1;}//创建管道和组件pipeline=gst_pipeline_new("audio-player");source=gst_element_factory_make("filesrc","file-source");decoder=gst_element_factory_make("mad","mad-decoder");sink=gst_element_factory_make("autoaudiosink","audio-output");if(!pipeline||!source||!decoder||!sink){g_printerr("One element could not be created.Exiting.\n");return-1;}//设置source的location参数。

MP3常见故障(爆音乱码)17招解决

MP3常见故障(爆音乱码)17招解决

在使用MP3随身听的过程中,总会碰到这样或者那样的问题。

而实际上90%以上MP3故障问题都是比较简单的问题,完全可以通过自己动手来解决。

这次为大家带来下面的文章,希望能为大家解决问题带来方便。

一、播放的音乐名称是乱码的现象解决方法:这个问题主要和你的MP3音乐文件附带的文件信息不正确有关,解决的方法就是直接用WI NAMP等播放工具将音乐文件信息去除,就是右键点击播放列表中的音乐文件,选“音乐文件信息”,在出现的对话框中将ID3v1和ID3v2项目中的文件信息全部清空就行。

二、用户误用Windows的格式化程序对MP3进行格式化,此时开机时屏幕上会显示“!Media Error”,随后会自动关机。

解决方法:只要重新用的驱动程序进行格式化就可以了。

三、机器开启不了解决方法:就目前来看,当机器开启不了时90%以上的原因是由于用户的各类误作导致MP3内部的固件(Firmware)损坏造成的。

只要对其进行重新格式化并写入Firmware就可。

可将电池拿下,按住播放键不放,连上电脑,运行驱动程序,然后进行格式化及固件升级即可。

四、用户用光盘自带的驱动进行升级后,只能显示繁体中文解决方法:上网下载简体中文的固件,然后照上面的步骤重新用的驱动程序进行升级并格式化就可以了!五、用户升级到一半,因为意外原因突然终止,导致机器无法开启解决方法:将电池拿下,按住播放键不放,连上电脑,运行驱动程序,然后进行格式化及固件升级即可。

六、用户反映机器会自动关闭解决方法:菜单中有一选项为关闭设置,可设置当长时间不用时,机器自动关闭。

七、播放时,音乐出现断断续续的停顿解决方法:1、机器感染病毒:请重新格式化机器。

2、歌曲有问题:可能是歌曲压缩格式不同,请更换歌曲试一下。

有的是由于在从电脑下载文件到MP3时,USB接口的接触不良引起的,建议重新插拔几下,或更换另一个USB接口下载,或更换USB延长线,或换一台电脑下载试试看。

(没有办法的办法)八、为什么我的MP3出现英文“Error!Reformat Internal media with”?解决方法:1:用户用了FAT32的文件系统格式化MP3播放器。

用C#做一个调用API的MP3播放器

用C#做一个调用API的MP3播放器

using System;using System.Collections.Generic;using System.Text;//using System.linq;using System.Runtime.InteropServices;using System.IO;namespace Mp3Player{class MP3{public MP3() { }//定义API函数使用的字符串变量[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] private string Name = "";[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] private string durLength = "";[MarshalAs(UnmanagedType.LPTStr, SizeConst = 128)] private string TemStr = "";int ilong;//定义播放状态枚举变量public enum State{mPlaying = 1,mPuase = 2,mStop = 3};//结构变量public struct structMCI{public bool bMut;public int iDur;public int iPos;public int iVol;public int iBal;public string iName;public State state;};public structMCI mc = new structMCI();///<summary>///当前播放状态的属性///</summary>public int GetState{get{if (State.mPlaying == mc.state){return 1;}else if (State.mPuase == mc.state){return 2;}return 3;}set{if (1 == value){mc.state = State.mPlaying;}else if (2 == value){mc.state = State.mPuase;}else if (3 == value){mc.state = State.mStop;}}}///<summary>///设计播放时间的显示格式///</summary>///<param name="Tflag">Tflag:true时显示前进用用时,false时为剩余时间并有'-'</param> ///<returns></returns>public string PlayerNowTime(bool Tflag){int total = CurrentPosition;string t = "";if (Tflag == false){total = Duration - total;t += "-";}int min = total / 60;int second = total % 60;if (min < 10){t += "0";}t += min.ToString();t += ":";if (second < 10){t += "0";}t += second.ToString();return t;}///<summary>///返回播放总时间///</summary>///<returns></returns>public string PlayerAllTime(){int total = Duration;return total.ToString();}///<summary>///打开音乐文件和获取音乐文件时间长度信息///</summary>public string FileName{get{return mc.iName;}set{try{TemStr = "";Name = "";//***清空string add = "For Binary";TemStr = TemStr.PadLeft(127, Convert.ToChar(" "));Name = Name.PadLeft(260, Convert.ToChar(" "));mc.iName = value;ilong = APIClass.GetShortPathName(mc.iName, Name, Name.Length);Name = GetCurrPath(Name);Name = "open "+ Convert.ToChar(34) + Name + Convert.ToChar(34) + " alias media"; ilong = APIClass.mciSendString(Name, TemStr, TemStr.Length, 0);ilong = APIClass.mciSendString("set media time format milliseconds", TemStr, TemStr.Length, 0);mc.state = State.mStop;mc.iVol = GetNowVolumn();}catch{}}}///<summary>///当前音量属性///</summary>public int Volume{get{return mc.iVol;}set{SetVolumeTo(value);}}///<summary>///播放位置的属性public int Position{get{return mc.iPos;}set{StepTo(value);}}///<summary>///播放///</summary>public void play(){TemStr = "";//if (mc.state == State.mStop)//{TemStr = TemStr.PadLeft(127, Convert.ToChar(" "));APIClass.mciSendString("play media", TemStr, TemStr.Length, 0);SetVolumeTo(200);mc.state = State.mPlaying;// return;//}//RepeatPlay();}///<summary>///停止///</summary>public void StopT(){TemStr = "";TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("close media", TemStr, TemStr.Length, 0); ilong = APIClass.mciSendString("close all", TemStr, TemStr.Length, 0); mc.state = State.mStop;}///<summary>///暂停///</summary>public void Puase(){TemStr = "";TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("pause media", TemStr, TemStr.Length, 0); mc.state = State.mPuase;}///<summary>///循环播放public void RepeatPlay(){TemStr = "";TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("play media repeat", TemStr, TemStr.Length, 0); SetVolumeTo(200);//设置初始化的音量大小mc.state = State.mPlaying;}///<summary>///快进\快退///</summary>public void StepTo(int steps){if (steps < 0){TemStr = "";steps = -steps;TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("step media by reverse", TemStr, steps, 0); mc.state = State.mPlaying;}else{TemStr = "";TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("step media by", TemStr, steps, 0);mc.state = State.mPlaying;}}/////////////////////////////////////////////音量控制///<summary>///获取当前音量///</summary>///<returns></returns>public int GetNowVolumn(){int volumn = 0;TemStr = "";TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("status media volumn", TemStr, volumn, 0);mc.state = State.mPlaying;return volumn;}///<summary>///设置音量///</summary>///<param name="volume">设置的值</param>public void SetVolumeTo(int volume){TemStr = "";volume *= 10;TemStr = TemStr.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("setaudio media volume to "+ volume.ToString(), TemStr, 128, 0);mc.iVol = volume;mc.state = State.mPlaying;}///<summary>///播放完就停止播放///</summary>///<returns></returns>public bool EndToStop(){if (mc.iPos == Duration){StopT();return true;}else{return false;}}///<summary>///得到文件路径///</summary>///<param name="name"></param>///<returns></returns>private string GetCurrPath(string name){if (name.Length < 1){return"";}name = name.Trim();name = name.Substring(0, name.Length - 1);return name;}//总时间public int Duration{get{durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));int ilog = APIClass.mciSendString("status media length", durLength,durLength.Length, 0);durLength = durLength.Trim();if (durLength == ""){return 0;}return (int)(Convert.ToDouble(Convert.ToInt32(durLength)) / 1000f);}}//当前时间public int CurrentPosition{get{durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));int ilog = APIClass.mciSendString("status media position", durLength, durLength.Length, 0);durLength = durLength.Trim();mc.iPos = (int)(Convert.ToDouble(Convert.ToInt32(durLength)) / 1000f);return mc.iPos;}}//录音///<summary>///初始化录音环境///</summary>///<returns></returns>public bool InitalDevice(){durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));//11025ilong = APIClass.mciSendString("set media bitpersample 8", durLength, durLength.Length, 0);ilong = APIClass.mciSendString("set media samplespersec 11025", durLength, durLength.Length, 0);ilong = APIClass.mciSendString("set media channels 2", durLength, durLength.Length, 0); ilong = APIClass.mciSendString("set media format tag pcm", durLength, durLength.Length, 0);return true;}///<summary>///开始录音///</summary>///<returns></returns>public bool BeginRecord(){durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));ilong = APIClass.mciSendString("close My", durLength, durLength.Length, 0);try{ilong = APIClass.mciSendString("open new type waveaudio alias My", durLength, durLength.Length, 0);ilong = APIClass.mciSendString("record My", durLength, durLength.Length, 0);}catch (Exception ex){ex.Message.ToString();}return true;}///<summary>///保存录音///</summary>///<param name="path">保存路径</param>public void SaveMusic(string path){durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));try{ilong = APIClass.mciSendString("save My "+ path, durLength, durLength.Length, 0);APIClass.mciSendString("close My", durLength, durLength.Length, 0);}catch (Exception ex){ex.Message.ToString();}}///<summary>///停止录音///</summary>public void StopRecord(){durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));try{APIClass.mciSendString("stop My", durLength, durLength.Length, 0);}catch (Exception ex){ex.Message.ToString();}}///<summary>///暂停录音///</summary>public void PauseRecord(){durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));try{APIClass.mciSendString("pause My", durLength, durLength.Length, 0);}catch (Exception ex){ex.Message.ToString();}}///<summary>///继续录音///</summary>public void ResumeRecord(){durLength = "";durLength = durLength.PadLeft(128, Convert.ToChar(" "));try{APIClass.mciSendString("resume My", durLength, durLength.Length, 0);}catch (Exception ex){ex.Message.ToString();}}}////////////////////////////////////public class APIClass{[DllImport("kernel32.dll", CharSet = CharSet.Auto)]public static extern int GetShortPathName(string lpszLongPath, string shortFile, int cchBuffer);[DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)] public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);}}。

小升初英语音乐爱好培养单选题40题

小升初英语音乐爱好培养单选题40题

小升初英语音乐爱好培养单选题40题1. I like to listen to ____ when I feel relaxed.A. pop musicB. mathC. footballD. book答案解析:A。

本题考查音乐类型相关词汇。

pop music是流行音乐,是一种音乐类型,符合题意。

math是数学,football是足球,book 是书,都与音乐无关。

2. In the music store, my friend wants to buy some CDs of ____.A. classical musicB. scienceC. paintingD. running答案解析:A。

classical music是古典音乐,是音乐的一种类型,在音乐商店可以购买古典音乐的CD。

science是科学,painting是绘画,running是跑步,均与音乐商店的情境和音乐类型无关。

3. She said she preferred ____ to other types of music.A. rock musicB. historyC. basketballD. pen答案解析:A。

rock music是摇滚音乐,是音乐类型,prefer...to...表示比起其他更喜欢,这里说比起其他音乐类型更喜欢摇滚音乐。

history是历史,basketball是篮球,pen是钢笔,都不是音乐类型。

4. When we talk about music, he always mentions ____.A. folk musicB. geographyC. swimmingD. eraser答案解析:A。

folk music是民间音乐,在谈论音乐时提到民间音乐是合理的。

geography是地理,swimming是游泳,eraser是橡皮,都不属于音乐范畴。

5. I often listen to ____ on my MP3 player.A. jazz musicB. ChineseC. dogD. tree答案解析:A。

什么是 ID3、ID3V1、ID3V2?(mp3的ID3信息介绍)

什么是 ID3、ID3V1、ID3V2?(mp3的ID3信息介绍)

什么是ID3、ID3V1、ID3V2?(mp3的ID3信息介绍)ID3是什么?ID3标签是MP3文件中用于描述音乐信息的数据元素(metadata)。

我们知道,MP3实际上是MPEG 1 Layer 3的缩写,它只定义了一种数据压缩方式,并没有特别说明如何在文件中添加描述音乐本身的信息。

ID3的出现解决了这个问题,它通过在MP3数据前面或者后面添加描述信息,让管理和组织MP3更容易。

ID3目前有多个版本,最常见的是ID3 V1.1和ID3 V2.4。

ID3的版本如果没有ID3,那么人们只能根据文件名判断一首歌它是什么内容了,何况就算听出了是什么歌,它的演唱者、专辑名称你也未必背得下来,所以给MP3文件增加内置的标签是理所当然的事情。

有趣的是,MP3的标签并没有一个ISO国际标准,ID3的各种版本目前只是一个近乎事实上的标准,并没有人强迫播放器或者编码程序必须支持它。

根据维基百科全书的解释(/wiki/ID3),ID3 V1是由Eric Kemp在1996年发明的。

ID3 V1是一组附加在音乐文件后面的数据,它的长度是固定的128字节。

ID3V1.0的定义如下表:其中流派一共定义了79种,流行的播放软件Winamp则把它扩展到了125种,从Blues到Noise到Dance Hall,非常丰富,在许多支持ID3编辑的软件中都可以看到这个列表,但是国内用户似乎不太在意这个标记,大多数人甚至不知道自己的歌曲到底属于哪一个分类。

这些内容一共只有128个字节,并不算累赘。

由于附加在文件尾部,所以播放器不必考虑它的影响,即使不支持ID3标记也不会影响音乐的还原——某些很老的播放器确实可能会在播放到这里的时候发出噪音或者报错。

但是标记在文件尾部也会造成一个问题,那就是如果还没有读到文件末尾,我们什么信息也看不到。

对硬盘和闪存里面的歌曲这当然不是问题,但是如果你通过流媒体方式直接在网络上收听,就会发现它的缺陷了。

MP3MP4数码播放器的原理及其应用(一)

MP3MP4数码播放器的原理及其应用(一)

MP3/MP4数码播放器的原理及其应用(一)来源:网络资源发表日期:2006-05-19一、 MP3/MP4基本原理MP3/MP4就是采用国际标准MPEG中的第三层音频压缩模式,对声音信号进行压缩的一种格式,中文也称“电脑网络音乐”。

MPEG中的第三层音频压缩模式比第一层和第二层编码要复杂得多,但音质最高,可与CD音质相比。

为了更深入地理解,先把MPEG-1音频标准的特点作一些介绍。

1 MPEG-1音频标准的特点MPEG-1音频压缩标准是第一个高保真音频数据压缩标准。

除了AC-3之外,其他的音频压缩算法只适用于语言(如码激励线性预测CELP)或只有中等的压缩质量(如自适应差分脉冲编码调制ADPCM)。

MPEG-1音频压缩标准虽然是MPEG-1标准的一部分,但它完全可独立应用。

为保证其普遍适用性,MPEG-1音频压缩标准提供了以下压缩模式:( 1 )音频信号采样频率可以是32kHz,44.1kHz或48kHz;( 2 )压缩后的比特流可按下列4种模式之一支持单声道或双声道;·提供给音频通道的单声道模式 (monophonic mode).·提供给两个独立的单音频通道的双-单声道模式 (dual-monophonic mode).·提供给立体声通道的立体声模式 (stereomode),通道之间有比特共享。

·联合立体声模式 (joint-stereomode),利用立体声之间的关联或通道之间的相位差的无关性,或者对两者同时利用。

( 3 )压缩后的比特流具有预定的几种比特率之一。

此外,MPEG-1音频标准也支持用户使用预定的比特率之外的比特率。

( 4 )MPEG-1音频标准提供三个独立的压缩层次,使用户可在复杂性和压缩质量之间权衡选择。

·层 1 (Layer 1)最为简单,使用的比特率384kb/s,主要用于数字小卡座DCC(Digital Compact Cassette)。

MP3编码格式

MP3编码格式

MP3 编码格式MP3是MPEG-1 Audio Layer 3的简称,是当今比较流行的一种数字音频编码和有损压缩格式(有Layer 3,也必然有Layer1和Layer2,也就是MP1和MP2,但不在本文讨论范围之内)。

MP3技术的应该可以用来大幅度的降低音频文件存储所需要的空间。

它丢掉脉冲编码调制(PCM)音频数据中对人类听觉不重要得数据,从而达到了较高的压缩比(高达12:1-10:1)。

简单地说,MP3在编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成有较高压缩比的MP3文件,并使压缩后的文件在回放时也能够达到比较接近原音源的效果。

MP3的音频质量取决于它的Bitrate和Sampling frequency,以及编码器质量。

MP3的典型速度介于每秒128到320kb之间。

采样频率也有44.1,48和32 kHz三种频率,比较常见的是采用CD采样频率——44.1kHz。

常用的编码器是LAME,它完全遵循LGPL的MP3编码器,有着良好的速度和音质。

一.概述:MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。

MP3的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group) 在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。

MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高,MP1 和MP2 的压缩率分别为4:1 和6:1-8:1,而MP3 的压缩率则高达10:1-12:1,也就是说,一分钟CD 音质的音乐,未经压缩需要10MB的存储空间,而经过MP3 压缩编码后只有1MB 左右。

EBS-1C智能时程音乐播放器说明书

EBS-1C智能时程音乐播放器说明书

EBS-1C智能时程音乐播放器功能说明一、概述★微电脑控制,单键飞梭,图形化界面,多级菜单操作模式。

★真彩色TFT显示器,中文字幕,工作状态一目了然。

★简体中文,繁体中文,英文三种语言菜单任意切换。

真彩色3.0英寸TFT显示器★内置2GB内存,外扩展SD卡最大容量可达32G。

★支持周历定时程序和特殊日期定时程序,满足各种时间、各种场合的使用需要。

★可支持电脑联机编辑定时程序,全自动电源、广播分区管理。

★高精度Maxim RTC时钟、定时可精确到秒。

★支持消防联动功能,警报触发信号输入播放指定音乐文件。

★支持外扩电源时序器,可输出短路信号,控制外围设备。

★支持本地定点呼叫。

★支持远程MIC呼叫,并可实现定点呼叫。

★支持分区,电源快捷键控制,操作直观易用。

★可定时播放内存和SD卡节目,8路音频定时输出,3路定时电源输出口。

★强大的音乐播放功能,支持MPEG 1/2 Layer 3 、WMA、WAV、OGG、APE、FLAC等音频格式。

★强大的媒体库功能,用户可以根据自己的个性需要灵活管理自己音乐文件。

★强大的音效处理功能,支持3D,重低音,微软音效等多种音效功能。

★HiFi级的音频解码性能,音质与专业CD相媲美。

★支持高清MIC录音、LINE IN录音、FM录音。

★内置高清晰FM收音机,并支持FM节目录制,可随意录制选定的FM收音机节目。

★支持远距离可视遥控(可选)。

二、操作界面使用说明(由于机型不同布局或颜色略有不同)1.面板功能⑴电源开关:本机电源控制,上切电源开启,电源指示灯亮表示电源正常,下切则关闭电源。

⑵SD卡插槽和USB连接座:插SD卡和连接PC,传输数据。

⑶液晶显示:显示操作功能和信息⑷按键:控制本机功能操作2.按键功能.ZONE1 分区1开关按键 .ZONE5 分区5开关按键.ZONE2 分区2开关按键 .ZONE6 分区6开关按键.ZONE3 分区3开关按键 .ZONE7 分区7开关按键.ZONE4 分区4开关按键 .ZONE8 分区8开关按键.PWR 启动外置电源 .ESC 返回按键.CALL 呼叫按键 .上一曲或光标右移.AUX 外接音源输入 .下一曲或光标左移.MENU 弹出当前操作界面菜单 .■停止播放.MUTE 静音,关闭分区输出。

zealot-51蓝牙音响说明书

zealot-51蓝牙音响说明书

zealot-51蓝牙音响说明书注意事项为了使用者正确使用播放器,确保播放器性能良好,请认真阅读并遵守:切勿严重撞击主机。

切勿接触苯、稀释剂等化学药品。

请不要靠近强磁场、电场。

请避开直射光线或发热器具。

切勿自行拆卸、修理、改造。

骑车、驾驶汽车及摩托车时,请勿使用播放器及耳机,以免造成危险。

切勿以较大音量收听,以免对听力造成不良影响。

废弃包装、电池、旧电子产品,请分类妥善处理。

二、功能特点[蓝牙音频] Bluetooth 3.0+EDR,最大接收距离10米。

[蓝牙通话] 语音清晰、无回声。

[MP3 播放] 直接播放TF卡内存放的MP3文件。

[FM收音机] FM数字立体声收音机,电台记忆播放。

[音频输入] 立体声音频输入接口,轻松连接电脑、数码音乐播放器、手机等音源设备。

[断点记忆] 自动记忆上次退出时的曲目,音量大小。

[内置电池] 内置可充电锂电池,环保,节能,实用。

[USB读卡器] 连接电脑,可拷贝或删除TF卡中的歌曲。

[USB声卡] 连接电脑,播放电脑音频文件,可控制电脑上下曲、音量大小。

三、播放音乐操作本机开机时自动检测识别外接设备,开机后进入蓝牙/FM 模式,插入TF卡自动识别播放,后者优先原则,也可自行切换播放模式;插入音频信号线不自动切换,通过[O/PLAY]键切换到AUX模式下播放,详细功能操作请阅读第四项“产品的按键、插孔功能定义”。

四、产品的按键、插孔功能定义(以实物为准)1.[ON/OFF]:电源开关;ON为开,OFF为关。

2.[O/PLAY]:播放/暂停/接听电话/挂断电话/模式转换/全自动搜台。

短按:TF、AUX和蓝牙模式为播放/暂停,FM模式为全自动搜台;来电时短按接电话,通话时短按挂机。

长按:长按3秒松开进行模式转换,转换顺序为TF - 蓝牙- AUX - FM;3.[-]:音量调节小/上一曲/上一个电台。

短按:TF模式为上一曲;FM模式选择上一个电台;蓝牙/AUX模式调节音量减小;长按:调节音量减小。

MP3智能音乐播放系统说明书1

MP3智能音乐播放系统说明书1

※系统概述:M P3智能音乐播放系统:采用世界最先进的微电脑控制、M P3、F L A S H录音技术。

将广播自动播放、音源选播、录音下载/音频和麦克风录音存储等先进功能综合为一体。

高标准的产品定位,多功能的超前设计,成为广播设备的典范之精品,达到国内领先水平。

广泛适用于校园自动广播音乐打铃、外语广播教学听力考试系统。

※综合功能:M P3自动广播、智能分区广播、日常教学广播、消防紧急广播、背景音乐播放、外语教学及听力考试广播功能。

※、系统特点:1、M P3存储:本系统采用S A M S U N G F L A S H为存储方式,音质清晰、优美、内存容量有32、64M、128M、256M、512M,从60分钟---16小时,可满足各种用户广播需求。

2、编程播放:具有自动广播功能、每天可达99次设定编程播放,对播放内容和播出时间、次数及循环设定多遍播放并任意编程控制,实现无人直守。

每一次编程时间设定可达几十首歌曲进行播放输入。

对某些需要准点播放的内容拥有优先权。

3、功放管理:在每次执行定时播放程序时会自动提前5秒钟将功放电源打开,避免功放机开机因启动及预热延时而影响正常播放。

(智能化的设计起到了节能和科学化管理功放开关)4、中文菜单显示:M P3自动广播系统采用中文式菜单液晶显示,引导式菜单进入,让操作者对各项功能信息一目了然,上下翻页及功能设定简洁方便,简单明朗易学易用。

5、程序设定:用户可根据不同的作息时间、内容进行编程设定,达到任意选择和调整作息时间,满足各广播单位对广播作息的选择需求。

6、M P3下载存录音源:用户可直接从电脑上下载或自行录制需要的乐曲到系统内,再进行编程播放。

7、音频及麦克存录音源:本系统可直接从各种媒体(V C D、C D、卡座等)线路和麦克风两种方式录音输入存储音源音乐曲目。

8、时钟显示:本系统具有日常时钟功能:本机采用专用实时时钟模块,走时准确,停电正常计时,标准时间及工作程序不会丢失、错乱。

音乐欣赏曲目(mp3目录)1

音乐欣赏曲目(mp3目录)1

音乐欣赏曲目(mp3目录)1音乐作品辨析曲目及音响江苏版音响包——1第一册l 管弦乐合奏北京喜讯到边寨郑路词马洪业曲童声齐唱卖报歌安娥词聂耳曲(聂耳,1912~1935,云南人,代表作品还有义勇军进行曲,铁踢下的歌女,大路歌,毕业歌等)2 弹拨乐合奏快乐的罗嗦李汴编曲民族管弦乐合奏丰收锣鼓彭修文蔡惠泉曲高音独唱我爱你,中国瞿综词郑秋枫曲女中音独唱宝贝印尼民歌女低音独唱黑娘娘美国歌曲3 男高音独唱祖国,慈祥的母亲张鸿喜词陆在易曲男中音独唱魔王(德) 歌德词(奥)舒伯特曲(舒伯特,1797--1828,代表作品还有野玫瑰,小夜曲,声乐套曲冬之旅,美丽的磨坊女等) 男低音独唱跳蚤之歌 (德)歌德词 (俄)穆索尔斯基曲4 双簧管独奏牧羊姑娘荻帆词金砂曲对唱什么秸子高又高选自歌舞剧(《刘三姐》)5 二胡独奏阳关三叠古曲小提琴独奏苗岭的早晨陈钢曲女声重唱洪湖水,浪打浪选自歌剧《洪湖赤卫队》梅少山等词敬安等曲 6 管弦乐曲拉德茨基进行曲合唱游击队之歌贺绿汀曲(1903一?,代表作品还有《嘉陵江上》,《晚会》,《牧童短笛》)童声合唱我们走进十月的阳光王小龙词奚其明曲领(合)唱在希望的田野上晓光词施光南曲齐(轮)唱社会主义好希扬诃李焕之曲7 小提琴独奏牧歌沙汉昆曲无伴奏合唱牧歌东蒙民歌海默词瞿希贤编曲8 管弦乐曲山丹丹开花红艳艳由陕北民歌改编女声独唱放马山歌云南民歌9 歌曲当红军的哥哥回来了陕西民歌合唱与管弦乐曲欢乐颂(德)席勒词(德)贝多芬曲(贝多芬,1770--1827,代表作品还有多部交响乐曲,《欢乐颂》选自第九交响曲“合唱”第三《英雄》,第五《命运》,第六《田园》,《热情》,《月光》及《悲怆》等32曹钢琴奏呜曲)女声独唱南泥湾贺敬之词马可曲(马可,1918—1976,徐州人,代表作品还有《咱们工人有力量》、《夫妻识字》、《小二黑结婚》等)男声小合唱澧水船夫号子湖南民歌10 民族管弦乐曲下山虎冼星海曲(1905-1945,代表作品还有《黄河大合唱》,《到敌人后方去》、《在太行山上》等) 男声独唱土地还家山西民歌 (小调)女声独唱锈金匾山西民歌 (小调)Ll 琵琶独奏天山之春乌斯满江曲王范地改编男声独唱嘎达梅林蒙古族民歌男声独唱上去高山望平川回族民歌女声独唱在北京的金山上藏族民歌男声独唱手挽手维吾尔族民歌12 女声小合唱打麦号子江苏靖江民歌女声独唱唱唱扬州三把刀扬州民歌(小调)女声独唱无锡景无锡民歌(小调)女声独唱搭凉棚昆山民歌(山歌)江苏版音响包——2(续第二册)1 民族管弦乐合奏茉莉花扬州民歌二胡独奏战马奔腾陈耀星曲合唱乌苏里船歌郭颂、胡小石词汪云才郭颂曲瞿希贤改编女声独唱太湖美任红举词龙飞曲吹管乐与打击乐太阳出来喜洋洋张小夫编曲2合唱伏尔加船夫曲俄罗斯民歌男声独唱梭罗河印尼民歌领(合)唱缆车 (意)丹查词曲3 领(合)唱我的祖国乔羽词刘炽曲笛子独奏姑苏行江先渭曲唢呐百鸟朝风民族乐曲4 声乐与乐队胡笳十八拍古曲女声独唱思乡曲瞿宗词郑秋枫曲琵琶协奏曲草原小姐妹一与暴风雪搏斗吴祖强、王燕樵、刘德海曲扬琴独奏蝉之舞徐坚强曲5 无伴奏合唱垦春泥田汉词贺绿汀曲二胡独奏空山鸟语刘天华曲二泉映月华彦钧曲(1893——1950)民间音乐家,无锡人,代表作《大浪淘沙》,《听松》等)6 无伴奏合唱回声佚名词 (尼德兰)拉索曲打击乐合奏鸭子拌嘴安志顺曲江南丝竹三六民间乐曲民族管弦乐合奏翻身的日子朱战耳曲7 女声独唱我和我的祖国张藜词秦咏诚曲埙独奏怀古张福全曹建国曲编钟苏武牧羊学堂乐歌古琴流水吉曲8 马头琴独奏清凉的泉水民间乐曲冬不拉独奏高潮民间乐曲巴乌独奏渔歌阎铁明曲9 男声独唱多情的土地任志萍词施光南曲小提琴独奏思乡曲马思聪曲大提琴独奏天鹅 (法)圣一桑曲弦乐合奏弦乐小夜曲第一乐章(奥)莫扎特曲lO 混声合唱旗正飘飘韦瀚章词黄自曲管弦乐合奏我和小蚊子跳舞 (俄)里亚多夫曲单簧管独奏单簧管波尔卡 (波)普罗修斯卡编曲小号领(合)奏大进行曲 (意)威尔第曲11 女声独唱美丽的心灵陈雪帆词金风浩益男声独唱我的太阳 (意)卡普阿曲管弦乐青少年管弦乐队指南(英)布里顿曲江苏版音响包——3(续第四册)l钢琴独奏“革命”练习曲(波)肖邦(肖邦1810—1849,代表作品还有大量的协奏曲,奏鸣曲等)手风琴独奏马刀舞 (前苏联)哈恰图良曲电子琴独奏野蜂飞舞 (俄)里姆斯基一科萨可夫曲2 女声独唱幸福在哪里 ?词谷建芬曲男女声二重唱年青的朋友来相会张枚同词谷建芬曲管弦乐合奏小步舞曲 (法)比才曲选自《阿菜城姑娘》第二组曲3 男声独唱一个美丽的传说张名河词吕远程恺曲弦乐四重奏如歌的行板(俄)柴可夫斯基曲(柴卡夫斯基(1840——1893),代表作品有大量的管弦乐,室内乐,歌剧和芭蕾舞等,如《天鹅湖》,胡桃夹子》,《睡美人》……)长笛与大提琴、竖琴三重奏酒狂刘庄根据古曲改编第五册4 管弦乐合奏 G大调小步舞曲 (德) 贝多芬曲民乐合奏采茶舞曲周大风词益管弦乐合奏杜鹃圆舞曲 (瑞典)约纳森曲民乐合奏彩云追月任光曲5 男声独唱嘉陵江上端木蕻良词贺绿汀曲管弦乐合奏春节序曲李焕之曲管弦乐合奏卡门序曲 (法)比才曲6 交响音画在中亚细亚草原上 (俄)鲍罗廷曲交响诗铁道游击队吕其明曲7 合唱救亡进行曲周钢鸣词孙慎曲管弦乐皮尔一金特组曲 (挪威) 格里格曲 (包括朝景,奥塞之死,阿尼特拉舞曲,在山魔的宫中)管弦乐动物狂欢节(选段) (法) 圣一桑曲(包括引子与狮王进行曲,骡子一跑的飞快的动物,大象,袋鼠,水族馆,鸟舍和终曲)8 长征组歌一红军不怕远征难四渡赤水出奇兵肖华词晨耕生茂唐坷曲黄河大合唱光未然词冼星海曲黄河船夫曲黄河颂黄水谣河边对口唱保卫黄河9 小提琴协奏曲梁山伯与祝英台何占豪陈钢曲管弦乐合奏拉科齐进行曲 (法) 柏辽兹曲江苏版音响包——4 (第六册)1 合唱人民解放军占领南京毛泽东词沈亚威曲管弦乐曲自新大陆交响曲第二乐章 (捷)德沃夏克曲2 女声独唱数九寒天下大雪选自歌剧《刘胡兰》董小吾词罗宗贤曲红梅赞选自歌剧《江姐》阎肃词羊鸣曲看天下劳动人民都解放选自歌剧《洪湖赤卫队》朱本和等词张敬安等曲合唱光荣颂(俄)戈洛捷茨基词(俄)格林卡曲(格林卡,[804~1857,代表作品还有<卡玛林斯卡亚》,歌剧《鲁斯兰与柳德米娜》等)3 男声独唱重归苏莲托 (意)G一库尔蒂斯词 (意)E一库尔蒂斯曲管弦乐曲女战士与炊事班长的舞蹈选自芭蕾舞剧《红色娘子军》吴祖强杜鸣心曲《天鹅湖》二幕场景 (俄) 柴可夫斯基曲花香鼓舞商易曲4 京剧选段苏三离了洪洞县——《玉堂春》老爹爹清晨起前去出首——《打鱼杀家》迎来春色换人间——《智取威虎山》锡剧选段推呀拉呀转又转——《双推磨》扬剧选段放着汽车去骑马——《喜娟》女声独唱(弹词开篇) 蝶恋花——答李淑一毛泽东词赵开生曲舞剧选段春之祭 (俄) 斯特拉文斯基曲5 民乐合奏金蛇狂舞聂耳曲 (根据民问乐曲《到八板》整理改编)口笛独奏云雀罗马尼亚民间乐曲管弦乐曲凯旋进行曲选自威尔弟歌剧《阿依达》钢琴独奏红头绳根据歌剧《白毛女》改编(原歌剧由贺敬之、丁毅编剧马可、张鲁、刘炽等作曲)6、匈牙利舞曲。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MP3播放器1.1开发背景在多媒体系统中,声音是一个不可缺少的部分。

可以将声音以文件的形式保存在计算机中,并可随时播放文件,首先需要将其数字化,即将模拟声音采集为数字,在进行保存。

根据数据采集的形式、算法不同,声音可保存为多种格式,如:★WAV★MP3★WMA★CD★APE★MIDI其中,MP3具有较高的压缩比,而听觉上已经非常接近W A V文件,因此很适合用于音乐文件的保存和欣赏。

由此MP3压缩标准已推出多年,较高的音质和压缩比,使其应用范围非常广泛,不少游戏也使用MP3音乐文件作为事件音效和背景音乐。

几乎所有著名的音频编辑软件都提供了对MP3的支持,可以将MP3像W A V一样使用。

由于MP3标准推出时间久,加上其不错的音质表现,使其成为运用最广的音频编码之一,在互联网络普及的今天,MP3更是网络上流传最广的音乐格式,在网络上可以找到大量的的MP3资源。

MP3不仅有广泛的用户端软件支持,也有很多的硬件支持,例如便携式媒体播放器(指MP3播放器)、DVD和CD播放器也都能播放MP3格式的音乐。

现在很多手机也支持播放MP3和以MP3音乐为铃声。

本论文编写一个MP3播放器,不仅使用其他外部控件,直接调用API的相关函数来播放MP3。

1.2系统分析系统要实现哪些功能,要有怎样的性能是项目开发的目标,因此,在实际项目的开发之前,首先要进行需求分析及可行性分析,这是项目开发的基础。

1.2.1需求分析通过对MP3标准、常用播放器功能进行分析,得到该系统需要具备的功能,具体如下。

●可添加多个MP3文件到播放列表;●可顺序、随机播放多个MP3文件;●显示播放MP3的信息;●可控制播放的进度;●可控制播放的音量;●可修改MP3的标记(TGA)信息。

1.2.2可行性分析可行性分析是上层进行决策的重要依据,通过对需求分析的研究,对项目的可行性分析如下。

1.引言MP3作为一种最流行的音乐格式,广泛应用在各种多媒体系统中。

开发一个MP3播放器,播放MP3格式的音乐文件。

1.1编写目的从计算机多媒体技术,以及MP3播放器的使用要求两方面出发,对开发MP3播放器管理系统(下面称为“本系统”)可行性进行分析,为企业决策作依据。

2.可行性分析的前提2.1系统要求MP3播放器首先要能正常播放MP3音乐,能调整播放进度、控制音量,另外本系统还将显示MP3的各种属性,并提供修改MP4标记(TGA)信息功能。

2.2系统目标MP3播放器系统的目标是:播放MP3音乐、显示和修改MP3标签(TGA)。

3.对计算机信息管理技术支持的分析本系统使用Visual Basic+Window API作为开发环境,这是非常熟悉的开发平台,项目开发不仅熟悉Visual Basic的各项功能,而且也能熟悉使用API进行运用程序开发,有着丰富的开发经验,完全可以在规定内完成本系统的开发。

1.3关键技术使用Visual Basic提供的控件与数据库结合,可方便快速地开发开发信息管理系统。

本项目的开发过程主要使用了以下技术。

1.3.1MP3格式简介MP3的全称是MPEG1 Layer-3音频文件。

MPEG指活动影音压缩标准,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层。

根据压缩质量和编码复杂程度划分为三层,即:Layer-1,Layer-2,Layer-3, 分别对应MP1,MP2,MP3这三种音乐文件。

MPEG 音频编码的层次越高,编码器越复杂,压缩率也越高。

MP310:1~12:1,一分钟CD音质的音乐数据,未压缩是要占用10MB存储空间,经过MP3压缩编码后只需要1MB 左右的存储空间。

要从MP3文件中获取信息,首先需要了解MP3文件结构。

MP3文件是由(Frame)构成的。

帧是MP3文件最小的组成单位。

从整体看,MP3文件大可分为三部分。

●TAG_V2(ID3V2):位于文件的开始位置,包含了作者、作曲、专辑信息,长度不固定,扩展了ID3V1的信息量。

●Frame:一系列的帧是MP3的主要数据,帧的数量由文件大小和帧的长度决定。

每个帧的长度可能不固定,也可能固定,由位率Bitrate决定。

每个帧又分为帧头和数据实体两部分,帧头记录了MP3的位率、采样频率、版本信息,每个帧之间相互独立。

●TAG_V1(ID3V1):位于文件的末尾128个字节,用来存放音乐的相关信息(如名称、作者、出品年月等)。

在程序中要显示或修改音乐的标记(TGA)信息,就需要从这里读取相关数据。

每个帧(frame)都有一个帧头(FrameHeader),由每一帧的前四个字节(32位)组成。

帧头的前11位(或前12个位)有固定的含义(称作“帧同步”)。

帧头后面的可能有两个字节的CRC校验,是否存在这两个字节的CRC校验,由帧头的第16位决定,若该位为0,表示帧头后面无校验字节,为1则有校验字节。

在MP3 文件中查找第一个帧同步(即找到一个值为255的且其后跟着三个到四个最高位为1的字节),然后逐个字节读取帧头,检查值是否正确,下面详细介绍帧头各位的含义。

1.3.2MP3文件帧头格式1.帧同步位(A)帧同步位共有11位,位于帧头的第21~31位。

帧同步位全部为1.2.MPEG音频版本(B)MEPG音频版本共2位,位于帧头的第19~20位,共有4种组合,各种组合含义如下。

●00:MEPG 2.5●01:保留●10:MEPG Version 2(ISO/IEC 13818-3)●11:MEPG Version 1(ISO/IEC 11172-3)yer 描述(C)Layer 描述共2位,位于帧头的第17~18位,共有4种组合,各种组合含义如下:●00:保留●01:LayerⅢ●10:Layer Ⅱ●11:Layer Ⅰ4.校验位校验位位于帧头的第16位,其值为0,表示紧跟帧头后有16位(即2个字节)用作CRC 校验,其值为1,表示在帧头后面没有校验字节。

5.位率索引(E)位率索引共4位,位于帧头的第12~15位,共有16种组合,针对不同的MEPG音频版本,组合的含义有所不同,各种组合含义如表1-1所示。

6.采样频率(F)采样频率共2位,位于帧头的第10~11位,共有4种组合,针对不同的MEPG音频版本,组合的含义有所不同,各种组合含义如表1-2所示。

表1-2 采样频率7.填充位(G)填充位位于帧头的第9未,其值为0,表示没有填充,其值为1,表示填充了一个额外的空位,用来达到正确的比特率,例如:128k 44.1kHz的LayerⅡ使用了很多418bit或417bit 长的帧来达到正确的128k比特率。

LayerⅠ的空位有32bit长,LayerⅡ和LayerⅢ的空位有8bit。

8.私有位(H)私有位位于帧头的第8位,所以用来做特殊应用。

例如可以用来触发应用程序的特殊事件。

9.声道(I)声道共有2位,位于帧头的第6~7位,共有四种组合,各种组合的含义如下。

●00:立体声●01:联合立体声(立体声)●10:双声道(立体声)●11:单声道(单声)双声道文件由2个独立的单声道组成。

每一个声道使用整个文件一半的位率。

大多数的解码器把它当作立体声来输出,但是它并不是这种情况。

10.扩展模式(J)扩展模式共有2位,位于帧头的第4~5位。

扩展模式(仅在联合立体声时有效用来连接对立体声效果无用的信息,来减少所需的资源。

这两个位在联合立体声模式下由编码器动态指定。

完整的MPEG文件的频率序列分成32个子带。

在LayerⅠ中这两个位确定强度立体声应有的频带。

LayerⅢ中这两个位确定应用了哪一种联合立体声(M|S stereo 或者Intensity stereo),频带由解压算法决定。

扩展模式各位组合的值如表1-3所示。

版权位位于帧头的第3位,其值为0表示无版权,值为1表示有版权。

11.原创位(L)原创位于帧头的第2位,其值为0表示原创的拷贝,值为1表示原创。

12.强调位,(M)强调位共2位,位于帧头的第0~1位,共有4种组合,各组合的含义分别如下。

●00:无●01:50/15ms●10:保留●10:CCTV J.171.3.3 MP3 文件的标签ID3V1MP3文件的ID3V1比较简单,存放在MP3的末尾,共占128个字节,各字节含义如下。

●Header:占3个字节,若为“TAG”表示有标签,否则认为没有标签。

●Title:占30个字节,保存标题信息。

●Artist:占30个字节,保存作者信息。

●Album:占30个信息,保存专辑信息。

●Year: 占4个字节,保存出品年代信息。

●Comment:占30个字节,保存备注信息。

●Genre:占1个字节,保存类型信息。

ID3V1的各项信息都是顺序存放的,没有任何标识将其分开。

例如标题占三十个字节,如果标题容不足30个字节,则使用0填充余下部分,否则将造成信息错误。

1.3.4 MP3文件的标签ID3V2ID3V2到现在一共有4个版本,但流行的播放软件一般只支持第3版,即ID3V2.3.由于ID3V1记录在MP3文件的末尾,ID3V2就只好记录在MP3文件的首部了。

也正是由于这个原因,对ID3V2的操作比ID3V1的慢。

而且ID3V2结构比ID3V1的结构要复杂得多,但比前者全面且可以伸缩和扩展。

每个ID3V2.3的标签都由一个标签头和若干个标签帧或一个扩展标签头组成的。

关于曲目的信息如标题、作者等都存放在不同的标签帧中,扩展标签头和标签帧并不是必要的,但每个标签至少有一个标签帧,帧头和标签帧一起顺序存放在MP3文件的首部。

1.3.5 使用MCI命令MCI(Media Control Interface,媒体控制接口)向基于Windows操作系统的应用程序提供了高层次的的控制媒体设备接口的能力。

通过MCI,程序员不需要关心具体设备的差异,就可以对激光唱机(CD)、视盘机、波形音频设备、视频播放设备和MIDI设备等媒体设备进行控制,对于程序员来说,可以他MIC理解为设备面板上的一排按键,通过选择不同的按键(发送不同的MCI命令)可以让设备完成各种功能,而不必关心设备内部如何实现的。

所有的MCI命令字符串都是通过多媒体API函数mciString或者mciExecute传送给MCI 的,这两个函数的声明如下:Private Declare Function mciSendString Lib”winmm.dll”Alias “mciSendStringA”&_ (ByVal lpstrCommand As String,Byval lpstrReturnString As String,ByVal uReturnlenth As Long,&_ByVal hwndCallback As Long As LongPrivate Declare Function mciExecute lib “winmm.dill”Alias”mciExecute”&_(ByVal lpstrcommand As String) As Long这两个API函数使用参数lpstrCommand来传递MIC Command String。

相关文档
最新文档