Сохраните закодированный .mp3 в приложение StoreDirectory Adobe Air iOS - PullRequest
2 голосов
/ 04 января 2012

Я разрабатываю приложение для iOS для iPad с Flash CS5.5 AIR v.3.1

Я использую ShineMp3Encoder для кодирования Wav в Mp3 из: https://github.com/kikko/Shine-MP3-Encoder-on-AS3-Alchemy

В основном он конвертирует byteArray (wav) в byteArray (mp3) или "mp3encoder.mp3Data" в коде.

У меня нет проблем с сохранением этого с помощью (new FileReference ()). Save (mp3Data, filename); но поскольку это используется в приложении iOS AIR, я хотел переключиться на использование File.applicationStorageDirectory, чтобы я мог поместить сохраненный файл mp3 в его собственную папку, чтобы упорядочить его. Когда я запускаю код, он проходит через все этапы, преобразует wav в mp3, а затем говорит, что сохраняет, но не без ошибок. Звук хранится в памяти, так как он может воспроизводиться до закрытия приложения. Я изменил resolPath на корневую папку, 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();
}

Ответы [ 2 ]

1 голос
/ 18 июня 2012

Я знаю, что мой ответ немного запоздал, но, возможно, он будет полезен для тех, кто найдет этот пост в будущем.

Когда вы разрабатываете в Windows в Adobe AIR и пытаетесь сохранить что-то в File.applicationStorageDirectory, оно НЕ будет сохранено в той же папке, что и ваш файл swf или fla.

Это будет сохранено здесь: C: \ Users [WIN_LOGIN] \ AppData \ Roaming [APP_ID] \ Local Store

Ваш APP_ID вы найдете и установите в настройках публикации для IOS.

1 голос
/ 04 января 2012

Не проверено, но попробуйте это.Если это работает, измените имя файла на динамическое, как вам нужно.

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...