`
确实比较男
  • 浏览: 115244 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

as3.0 解析mp3文件 得到mp3的作者,专辑等

阅读更多

参考的资料:

              http://duyouhua1214.iteye.com/blog/1326238

 

 

mp3文件的首尾都存有文件的信息,存在尾部的称为ID3V1,在首部的称为 ID3V2。在这篇文章中只说存在尾部的id3v1

 

这里是一个表 ,记录了文件信息存放的位置:

 

ID3 V1.0文件尾说明

字节
长度 (字节)
       
1-3
3
存放“TAG”字符,表示ID3 V1.0标准,紧接其后的是歌曲信息。
4-33
30
歌名
34-63
30
作者
64-93
30
专辑名
94-97
4
年份
98-127
30
附注
128
1
MP3音乐类别,共147种。

 

按照这个就可以读取出mp3中文件的信息。

 

这里说的读取方法都是在操作的字节,所以只要理解原理,任何编程语言都能实现,这里就给出as3.0的代码:

 

package service
{
	//import 省略

	public class SongInfo
	{

		//private var TAG:String = "TAG";// 文件头1-3 
		private var songName:ByteArray = new ByteArray  ;// 歌曲名4-33 
		private var artist:ByteArray = new ByteArray  ;// 歌手名34-63 
		private var album:ByteArray = new ByteArray  ;// 专辑名61-93 
		private var year:ByteArray = new ByteArray  ;// 年94-97 
		private var comment:ByteArray = new ByteArray  ;// 备注98-125 
		private var buffer:ByteArray = new ByteArray  ;
		public function SongInfo(file:File)
		{

			//解决中文乱码的问题
			System.useCodePage = true;

			var fileStream:FileStream = new FileStream  ;
			fileStream.open(file,FileMode.READ);

			//设置文件读取的位置
			fileStream.position = file.size - 128;
			fileStream.readBytes(buffer);

			// 只有前三个字节是TAG才处理后面的字节 ;
			var tag:ByteArray = new ByteArray  ;
			buffer.readBytes(tag,0,3);

			if (tag.toString() == "TAG")
			{
				buffer.readBytes(songName,0,30);
				buffer.readBytes(artist,0,30);
				buffer.readBytes(album,0,30);
				buffer.readBytes(year,0,4);
				buffer.readBytes(comment,0,28);

			}
			fileStream.close();

		}

		//返回备份
		public function getComment():String
		{
			return comment.toString();
		}


		//专辑名
		public function getAlbum():String
		{
			return album.toString();
		}

		//返回年月日
		public function getYear():String
		{
			return year.toString();
		}



		//返回歌曲的名字
		public function getSongName():String
		{
			return songName.toString();
		}


		//返回歌手
		public function getSinger():String
		{
			return artist.toString();
		}



	}


}

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Flash as3.0 小巧MP3 播放器 源码

    在我们的"Flash as3.0 小巧MP3 播放器 源码"项目中,`MP3.fla`文件是主要的工作区,包含舞台上的所有视觉元素以及相关的ActionScript代码。在Flash CS4中,开发者可以使用时间轴上的关键帧和脚本面板编写AS3代码,...

    简易AS 3.0音乐播放器

    例如,可以创建一个Sound对象加载MP3文件,然后监听和处理Event.SOUND_COMPLETE事件来实现播放和暂停。上一首和下一首切换则需要管理播放列表,通过改变当前播放的音频索引来实现。 3. **播放进度条显示**: 进度条...

    as3.0超级玛丽源码

    AS3.0支持MP3、WAV等多种音频格式,可以方便地播放背景音乐和音效。源码中可能会包含一个音频管理类,负责加载、播放和停止音频资源。 最后,游戏状态管理也是需要考虑的。超级玛丽游戏可能有多个状态,如游戏开始...

    flash as3.0 + xml 经典flv视频播放器(二)

    - 音频播放模块:对于MP3模块,AS3.0的`Sound`类用于加载和播放音频文件。 5. **动态内容加载**: 使用XML的好处之一是内容可以动态加载,允许视频列表在不更新播放器本身的情况下进行扩展或更改。这样,开发者可以...

    利用AS3来读取MP3的ID3档案资料

    要使用AS3读取ID3信息,你需要创建一个类来解析MP3文件。例如,`ID3Reader.as`可能包含以下代码: ```as3 public class ID3Reader { public function readMP3Header(file:File):void { var stream:FileStream = ...

    mp3Player播放器

    7. **加载和解码MP3**:使用AS3.0的Sound类和SoundChannel类,播放器可以加载MP3文件并创建一个Sound对象,然后通过SoundChannel对象进行播放。解码过程在后台自动进行,用户几乎无需等待即可开始播放。 8. **...

    通过ByteArray来播放MP3

    以下是一个简单的AS3代码片段,它定义了一个包含MP3文件的SWF文件: ```actionscript package { import flash.display.Sprite; public class MP3Wrapper extends Sprite { [Embed(source="test.mp3")] public...

    AS3 KingPlayer mp3播放器 源码

    AS3 KingPlayer是一款基于ActionScript 3.0开发的MP3播放器,它提供了丰富的功能和自定义选项,适用于网页嵌入或者独立应用。这款播放器的源码可以帮助开发者深入理解音频处理、用户界面设计以及Flash ActionScript...

    flash+xml简约的mp3播放器flash素材

    该播放器的运作原理是:Flash程序读取XML文件,获取其中的MP3文件路径,然后加载并播放这些音乐。用户可以通过播放器的控制界面进行播放、暂停、停止、前进和后退等操作。由于Flash提供了丰富的图形和交互功能,因此...

    Flash 导入资源

    4. **XML和JSON数据**:AS3.0提供`XML`和`JSON`类,用于解析和操作这两种数据格式。这在数据交换、配置文件读取等方面非常实用。 三、资源优化和管理 1. **预加载**:当项目包含大量资源时,预加载是必不可少的。...

    Flash MP3播放器制作

    3. **加载MP3文件**:在Flash中,我们可以使用`Sound`类来加载和播放MP3文件。通过`load()`方法加载MP3,然后用`play()`方法启动播放。同时,我们还需要处理加载进度和错误处理。 4. **用户界面设计**:一个良好的...

    flex制作Mp3播放器

    6. **XML或JSON数据源**:为了让播放器能够播放多个MP3文件,我们可以使用XML或JSON文件作为数据源,存储MP3文件的URL和相关信息。通过解析这些数据,我们可以动态加载和切换不同的歌曲。 7. **UI设计**:虽然Flash...

    FLASH MP3播放器

    5. **添加和删除歌曲**: 这涉及到数据结构,如数组或列表,用于存储MP3文件的路径或URL。用户界面需要提供接口供用户进行添加和删除操作,这些操作需要更新歌曲列表。 6. **显示播放进度**: 这通常通过监听...

    flash MP3播放器(带fla源文件)

    《深入解析:Flash MP3播放器与FLA源文件》 在数字音频的世界里,Flash MP3播放器凭借其跨平台的兼容性和丰富的交互性,一度成为网页音乐播放的首选工具。今天,我们将深入探讨一款名为"Flash MP3播放器"的项目,它...

    Flash游戏制作常用代码解析

    本资料"Flash游戏制作常用代码解析"主要聚焦于ActionScript 3.0(AS3),它是Flash开发中的最新版本,具有更高效、更面向对象的特性。 一、基础语法 ActionScript 3.0采用了严格的类型系统,变量必须先声明类型再...

    FLV 播放器源代码

    - 视频解码:播放器需要解析FLV文件的头信息,理解帧类型(关键帧、间隔帧等),并能解码H.263或VP6等视频编码格式。 - 音频解码:同样,播放器需要处理AAC或MP3等音频编码,将其转换为可播放的声音数据。 - 控制...

    FLASH音乐播放器控制

    它能够播放MP3、WAV等音频格式,支持自定义皮肤、播放列表、音量控制等功能。随着HTML5的普及,Flash逐渐被HTML5 Audio取代,但在某些特定场景下,Flash音乐播放器仍有其优势。 二、工作原理 Flash音乐播放器的核心...

    从零开始系列-Flex3视频教程

    第四章"ActionScript 3.0语法基础"深入探讨了AS3的关键语法元素,如变量、数据类型、控制流语句和函数,这对于理解Flex组件的行为至关重要。 第五章"事件和事件机制"阐述了事件处理的基本概念,如何定义和处理不同...

    SothinkSWFDecompiler

    3. **反编译ActionScript**:SothinkSWFDecompiler支持ActionScript 3.0的反编译,可以将编译后的脚本还原为可读的AS代码,方便开发者理解和修改。 二、使用过程 1. **安装与启动**:用户首先需要运行压缩包内的...

Global site tag (gtag.js) - Google Analytics