2016-07-04 17 views
2

AndroidのAir App用にas3を使用することができますかどうかわかりません。私は今一週間進んでいますが、私はそれが欲しいものではありません。着信音/通知としてサウンドを保存するには?

これまでのところ、ユーザーがサウンドをスワイプすると、電話にサウンドを保存するための保存場所が表示されます。私は着メロや通知として保存することはできません問題です。それをデバイスに保存するだけです。

ユーザーが保存し、それらをなど着信音として設定することが着メロに保存する必要がありクリックできるようにするために、私は任意の助けをいただければ幸いです...

をしたいと思います。ここに私がこれまで持っているものがあります:

私はwavとして音を保存しています。それでも何か問題があるのは、ファイルがデバイス上にあり、それを再生しようとすると再生されますが、それが再生されますが、クラッシュしてファイルを読み取ることができないためです。

var snd:Sound = new sndPanda(); 

     var sndBytes:ByteArray = new ByteArray(); 
     sndBytes.endian = Endian.LITTLE_ENDIAN; 

     snd.extract(sndBytes, 44100 * 2); 

     var wav:ByteArray = encode(sndBytes); 

     var f:FileReference = new FileReference(); //save file to phone 
     f.save(wav, "Panda.Mp3"); 



     function encode(data:ByteArray):ByteArray 
     { 
      var channels:uint = 2; 
      var bits:uint = 16; 
      var rate:uint = 44100; 

      var bytes: ByteArray = new ByteArray(); 
      bytes.endian = Endian.LITTLE_ENDIAN; 

      bytes.writeUTFBytes('RIFF'); 
      bytes.writeInt(uint(data.length + 44)); 
      bytes.writeUTFBytes('WAVE'); 
      bytes.writeUTFBytes('fmt '); 
      bytes.writeInt(uint(16)); 
      bytes.writeShort(uint(1)); 
      bytes.writeShort(channels); 
      bytes.writeInt(rate); 
      bytes.writeInt(uint(rate * channels * (bits/8))); 
      bytes.writeShort(uint(channels * (bits/8))); 
      bytes.writeShort(bits); 
      bytes.writeUTFBytes('data'); 
      bytes.writeInt(data.length); 
      data.position = 0; 
      var length:int = data.length - 4; 
      while (data.position < length) { // could be better :-) 
       bytes.writeShort(uint(data.readFloat() * 65536)); 
      } 
      bytes.position = 0; 

      return bytes; 
     } 

私はFileReferenceを使用してデバイスに保存しています。しかし、私は着信音として保存する方法がなければならないことを知っています。前もって感謝します。

答えて

1

着信音や 通知として保存できません。デバイスに保存するだけです。

これは、FileReferenceの機能です。 をアプリに、に保存してください。
AS3には、Androidの着信音/通知として音声を設定する組み込みの方法はありません。 ANE(Android Native Extension)を探すことを検討することもできます。

私はwavとしてサウンドを保存しています。

WAV(PCM)データを含むファイルにMP3拡張子を挿入するのはなぜですか?参照:f.save(wav, "Panda.Mp3");

私はそれを再生しようと、それを果たしているが、その後クラッシュし ファイルを読み取ることができませんと言います。

sndPandaデータは、その後使用MP3であれば、私は
...これはあなたの問題を修正する場合は知っているが、var snd:Sound = new sndPanda();を考慮していない:

var snd:Sound = new sndPanda(); 
var sndBytes:ByteArray = new ByteArray(); 

var totalSamples : int = int(Math.floor ((snd.length/1000) * 44100)); 

sndBytes.endian = Endian.LITTLE_ENDIAN; 
snd.extract(sndBytes, totalSamples); 

var wav:ByteArray = encode(sndBytes); 
var f:FileReference = new FileReference(); //save file to phone 

f.save(wav, "Panda.Mp3"); 
+0

は、全ての情報のためにありがとうございました。私はANEを探していましたが、誰も私の知識から何も創造していません。病気を作る方法を見なければならない。私の唯一の選択肢。 mp3の情報とコードのおかげで再び非常に便利でした – Nathan

関連する問題