приложение air AS3: сохранение звуков в качестве рингтонов / уведомлений

#actionscript-3 #ringtone #audio

#actionscript-3 #мелодия звонка #Аудио

Вопрос:

я новичок в этом. только что сделал двухстраничную звуковую панель. работает отлично. проблема в том, что я хотел бы предоставить возможность сохранять звуки в качестве рингтонов / уведомлений. нет примеров того, как это сделать в as3. помогите, пожалуйста!

Комментарии:

1. Привет, я подозреваю, что никто не попытался помочь, потому что вы предоставили очень мало информации. Не существует стандартного типа файла для рингтонов (уведомлений?) и вам придется выбрать один или два, чтобы определить проблему. Сохранение файла в MP3 — довольно сложная задача, сохранение в WAV — немного сложнее. Вам придется провести некоторое исследование классов ByteArray и FileReference. Можно предположить, что вы загружаете звуки в свое приложение в формате MP3, так что, возможно, вы ближе, чем думаете.

Ответ №1:

  • запишите звук с помощью:http://www.bytearray.org/?p=1858

  • кодирование в mp3 с помощью:https://github.com/kikko/Shine-MP3-Encoder-on-AS3-Alchemy

  • сохраните данные mp3 в файл как таковой :

      private function saveFile()
        {       
        // WRITE ID3 TAGS
    
        var sba:ByteArray = mp3Encoder.mp3Data;
        sba.position =  sba.length - 128
        sba.writeMultiByte("TAG", "iso-8859-1");
        sba.writeMultiByte("Microphone Test 1-2, 1-2      " String.fromCharCode(0), "iso-8859-1");  // Title
        sba.writeMultiByte("jordansthings                 " String.fromCharCode(0), "iso-8859-1");  // Artist           
        sba.writeMultiByte("Jordans Thingz Bop Volume 1  " String.fromCharCode(0), "iso-8859-1");   // Album        
        sba.writeMultiByte("2010"   String.fromCharCode(0), "iso-8859-1");                          // Year
        sba.writeMultiByte("www.jordansthings.com         "   String.fromCharCode(0), "iso-8859-1");// comments
    
    
        sba.writeByte(57);                                                                      
        filePath = (File.applicationStorageDirectory.resolvePath("sound3.mp3")).url;
    
        // get the native path 
        var wr:File = new File(filePath);
        // create filestream 
        var stream:FileStream = new FileStream();
        //  open/create the file, set the filemode to write in order to save.
        stream.open( wr , FileMode.WRITE);
        // write your byteArray into the file. 
        stream.writeBytes ( sba, 0, sba.length );
        // close the file. 
        stream.close();
    
    }