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>
<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>
相关文章推荐
- easyui tabs 一个窗口修改完成后刷新另一个窗口
- "返回"——查询结果后插入修改完成返回原查询结果页面
- 如何修改一次代码就可以完成多种类型 cell 的 UITableView 增删修改顺序?
- sql server2005 无法修改表,超时时间已到 在操作完成之前超时
- CentOS 6.3完成mysql 5.5.27安装后的初始化工作(一)修改root密码
- 开发日记——手机安全卫士 Day06 2016-7-25 修改部分界面,增加了联系人搜索功能,完成部分黑名单功能
- 使用XmlDocument将dropdownlist中显示的书名的其它信息读入到相应的文本框中。添加 :删除按钮,修改并保存按钮 和 添加按钮。完成这些按钮所对应的功能(XmlDocument)
- rk3288修改内核生成/dev/ttyUSBX,完成对身份证阅读器的支持
- [导入]论坛的修改完成
- nncq----检测人员 详细页修改版本(完成20%)
- 解决SQLServer中变更海量数据表结构时产生【无法修改表. Timeout 时间已到. 在操作完成之前超时时间已过或服务器未响应. 】
- Mysql安装完成后的data目录修改
- ps图层填充颜色——先选好颜色,再选中需要填充颜色或者修改颜色的图层,最后按住Alt+Delete键。完成。
- 网页编辑器(修改apache+mod_python配置完成cgi脚本前奏)
- python tornado修改celery完成任务时的输出
- WinForm之通过事件传值来完成添加修改窗体赋值
- jn-时间控件查询问题(控件不带时分秒,但是查询要包含当天)修改完成
- 分布式计算:将Socket实验修改为服务端多线程程序,并测试完成
- 11周2-2项目 - 存储班长信息的学生类,将Stu类的数据成员的访问权限改为private,你的程序是否能完成要求的功能?如果不行,请修改程序。请不要修改给出的代码,只能修改自己写的代码。
- 默认播放器的"done"修改成“完成”