您的位置:首页 > 大数据 > 人工智能

AIR完成修改mp3文件标签

2009-01-09 16:14 183 查看
<?xml version="1.0" encoding="utf-8"?>
<mx:Window xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="设置mp3文件" width="600" height="450"
fontFamily="宋体" fontSize="14" alwaysInFront="true" creationComplete="init();" close="closewin()">
<mx:Script>
<![CDATA[
private var fileToOpen:File = File.applicationDirectory;
private var fileStr:FileStream = new FileStream();//数据流打开文件可以同步 可以异步
private function init():void
{
var screenBounds:Rectangle = Screen.mainScreen.bounds;
nativeWindow.x = (screenBounds.width - nativeWindow.width) / 2;
nativeWindow.y = (screenBounds.height - nativeWindow.height) / 2;
}
private function fileOpen(event:Event):void
{
fileStr.position = fileToOpen.size - 128;
if (fileStr.readMultiByte(3, "gbk").match(/tag/i))
{
var id3Title:String = fileStr.readMultiByte(30, "gbk");
trace("id3Title标题:"+id3Title);
var id3Artist:String = fileStr.readMultiByte(30, "gbk");
trace("艺术家:"+id3Artist);
var id3Album:String = fileStr.readMultiByte(30, "gbk");
trace("唱片:"+id3Album);
var id3Year:String = fileStr.readMultiByte(4, "gbk");
trace("唱片:"+id3Year);
var id3Comment:String = fileStr.readMultiByte(30, "gbk");
//var id3GenreCode:String = fileStr.readByte().toString(10);
trace("唱片:"+id3Comment);
}
}
private function selectTextFile(root:File):void
{
var txtFilter:FileFilter = new FileFilter("mp3", "*.mp3;mpeg3");
root.browseForOpen("Open", [txtFilter]);
root.addEventListener(Event.SELECT, fileSelected);
}
private function fileSelected(event:Event):void
{
msg.text="读文件:"+fileToOpen.nativePath;
//fileStr.addEventListener(Event.COMPLETE, fileOpen);
//fileStr.openAsync(fileToOpen, FileMode.UPDATE);//异步打开文件防止文件过大
fileStr.open(fileToOpen, FileMode.UPDATE);
trace(fileToOpen.nativePath);
fileStr.position = fileToOpen.size - 128;
if (fileStr.readMultiByte(3, "gbk").match(/tag/i))
{
Title.text = fileStr.readMultiByte(30, "gbk");
Artist.text = fileStr.readMultiByte(30, "gbk");
Album.text = fileStr.readMultiByte(30, "gbk");
syear.text = fileStr.readMultiByte(4, "gbk");
Comment.text = fileStr.readMultiByte(30, "gbk");
//var id3GenreCode:String = fileStr.readByte().toString(10);流派
//trace("注释:"+id3Comment);
}
fileStr.close();
}
private function fileSet():void
{
fileStr.open(fileToOpen, FileMode.UPDATE);
fileStr.position = fileToOpen.size - 125;
fileStr.writeMultiByte(Title.text+String.fromCharCode(0),"gbk");
fileStr.position=fileToOpen.size - 95;
fileStr.writeMultiByte(Artist.text+String.fromCharCode(0),"gbk");
fileStr.position=fileToOpen.size - 65;
fileStr.writeMultiByte(Album.text+String.fromCharCode(0),"gbk");
fileStr.position=fileToOpen.size - 35;
fileStr.writeMultiByte(syear.text+String.fromCharCode(0),"gbk");
fileStr.position=fileToOpen.size - 31;
fileStr.writeMultiByte(Comment.text+String.fromCharCode(0),"gbk");
msg.text="写文件结束:"+fileToOpen.nativePath;
fileStr.close();
}
private function closewin():void
{
this.close();
}
]]>
</mx:Script>
<mx:Canvas width="400" x="0" y="0" height="300">
<mx:Label text="" id="msg" width="314" x="10" y="2" height="47"/> <mx:Button label="文件" click="selectTextFile(fileToOpen)" x="332" y="10"/>
<mx:Label text="标题" x="10" y="57"/><mx:TextInput text="" id="Title" x="90" y="57" width="230" maxChars="30"/>
<mx:Label text="艺术家" x="10" y="87"/> <mx:TextInput text="" id="Artist" x="90" y="87" width="230" maxChars="30"/>
<mx:Label text="唱片" x="10" y="117"/> <mx:TextInput text="" id="Album" x="90" y="117" width="230" maxChars="30"/>
<mx:Label text="发行年" x="10" y="147"/> <mx:TextInput text="" id="syear" x="90" y="147" restrict="0-9" width="230" maxChars="4"/>
<mx:Label text="注释" x="10" y="177"/> <mx:TextInput text="" id="Comment" x="90" y="177" width="230" maxChars="30"/>
<mx:Button label="设置" click="fileSet()" x="10" y="207"/><mx:Button label="退出" x="320" click="closewin()" y="207"/>
</mx:Canvas></mx:Window>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐