Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将编码的.mp3保存到应用程序存储目录Adobe Air iOS_Ios_Flash_Actionscript 3_Actionscript_Air - Fatal编程技术网

将编码的.mp3保存到应用程序存储目录Adobe Air iOS

将编码的.mp3保存到应用程序存储目录Adobe Air iOS,ios,flash,actionscript-3,actionscript,air,Ios,Flash,Actionscript 3,Actionscript,Air,我正在开发一款iOS iPad应用程序,带有Flash CS5.5 AIR v.3.1 我正在使用ShineMp3Encoder将Wav编码为Mp3,从: 基本上,它将字节数组(wav)转换为代码中的字节数组(mp3)或“mp3encoder.mp3Data” 使用(new FileReference())保存此文件没有问题。save(mp3Data,filename);但由于这是在iOS AIR应用程序中使用的,我想切换到使用File.applicationStorageDirectory,

我正在开发一款iOS iPad应用程序,带有Flash CS5.5 AIR v.3.1

我正在使用ShineMp3Encoder将Wav编码为Mp3,从:

基本上,它将字节数组(wav)转换为代码中的字节数组(mp3)或“mp3encoder.mp3Data”

使用(new FileReference())保存此文件没有问题。save(mp3Data,filename);但由于这是在iOS AIR应用程序中使用的,我想切换到使用File.applicationStorageDirectory,这样我就可以将保存的mp3放在它自己的文件夹中以保持有序。当我运行代码时,它会完成所有步骤,将wav转换为mp3,然后说它保存了,但不会出错。声音存储在内存中,因为它可以播放,直到应用程序关闭。我已将resolvePath更改为根文件夹myApp/,并更改为/sounds,但这些都不起作用。我以前从未尝试过这样做,所以我有点不明白为什么没有创建任何文件。任何有任何建议的人都会帮上大忙

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();
}

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

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();

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

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

将保存在此处: C:\Users[WIN\u LOGIN]\AppData\Roaming[APP\u ID]\Local Store


您将在IOS发布设置中找到并设置您的应用程序ID。

这产生了相同的结果。它在代码中一直运行,没有错误,也没有结果。您如何测试该文件是否已写入?我正在计算机上进行测试,所以我只是在包含.fla.swf等的文件夹中检查任何.mp3或temp文件。我想如果它在这里不起作用,那么一旦转换,它就不起作用了。一旦转换成.ipa并安装在iPad上,所有东西的行为都是一样的,所以我希望在过于超前之前让它在我的电脑上工作。一旦它在一个方面起作用,它就应该在两个方面都起作用……很多事情“应该”起作用,但正如我发现的那样,情况并非总是如此。你使用的是Mac吗?你是否安装了Xcode,因为它们可以更容易地查看设备上是否存储了文件。是的,不幸的是这是真的。。。我用的是个人电脑。。我确实可以访问一台Mac电脑,它是注册的,而另一位开发人员拥有我可能可以借用的xCode