2012-01-04 97 views
2

我开发一个iOS的iPad应用程序瓦特/闪存CS5.5 AIR v.3.1保存编码的MP3播放到applicationStorageDirectory Adob​​e AIR的iOS版

我使用ShineMp3Encoder为WAV编码从MP3: https://github.com/kikko/Shine-MP3-Encoder-on-AS3-Alchemy

基本上它在代码中将byteArray(wav)转换为byteArray(mp3)或“mp3encoder.mp3Data”。

我没有问题使用(新的FileReference())保存这个。save(mp3Data,filename);但是因为这是在iOS AIR应用程序中使用的,所以我想切换到使用File.applicationStorageDirectory,以便我可以将保存的mp3放到它自己的文件夹中以保持组织。当我运行代码时,它会经历所有步骤,将wav转换为mp3,然后说它可以保存但不会出错。声音存储在内存中,因为它可以播放直到应用程序关闭。我已将resolvePath更改为根文件夹myApp /,并将其更改为/声音 - 其中任何一项都不起作用。我从来没有尝试过这样做,所以我有点迷路,为什么没有创建文件。任何有任何建议的人都会帮助很多。

function onEncoded(e:Event):void{ 
    myTI.text = "Mp3 encoded and saved. Press Play."; 
    mp3encoder.mp3Data.position = 0; 
    var myDate:Date = new Date(); 
    var theDate:String = myDate.monthUTC.toString() + myDate.dayUTC.toString() 
     + myDate.hoursUTC.toString() + myDate.minutesUTC.toString() 
     + myDate.secondsUTC.toString(); 

    var file:File = File.applicationStorageDirectory.resolvePath("myApp/sounds/myVoice+"+theDate+".mp3"); 
    var fileStream:FileStream = new FileStream; 
    fileStream.open(file,FileMode.UPDATE); 
    fileStream.writeBytes(mp3encoder.mp3Data); 
    fileStream.close(); 
} 

回答

1

未经测试,但试试这个。如果有效,请根据需要将文件名修改为动态。

var myfilename:File = File.applicationStorageDirectory; 
myfilename = myfilename.resolvePath("myVoice.mp3"); 


var outputStream:FileStream = new FileStream(); 
outputStream.open(myfilename,FileMode.WRITE); 
outputStream.writeBytes(mp3encoder.mp3Data,0,mp3encoder.mp3Data.length); 
outputStream.close(); 
+0

这产生了相同的结果。它通过代码一路运行,没有错误,没有结果。 – user1129107 2012-01-04 18:07:57

+0

如何测试以查看文件是否已被写入? – crooksy88 2012-01-04 19:00:49

+0

我正在测试我的电脑,因此我刚刚检查了包含我的.fla .swf等文件的任何.mp3或temp文件。我觉得如果它在这里不起作用,一旦转换就不会起作用。 一旦转换为.ipa并安装在iPad上,所有的行为都是相同的,所以我希望在我的计算机上工作,然后才能超越自己。它应该工作在两种方式之一... – user1129107 2012-01-04 19:42:06

1

我知道我的答案有点迟,但也许这对将来会找到这篇文章的人有用。

当您在Adobe AIR的Windows上开发并尝试在File.applicationStorageDirectory中保存某些内容时,它不会像swf或fla文件一样保存在相同的文件夹中。

它会保存在这里: C:\用户[WIN_LOGIN] \应用程序数据\漫游[APP_ID] \本地存储

你APP_ID你会发现,并设置在发布设置的IOS。