0

アクション スクリプト プロジェクトで wav を mp3 に変換しようとしていまし た私のプロジェクトでそれを使用する方法がわかりません。

私のプロジェクトでは、次の関数で byteArray データを wav 形式に変換し、wav を mp3 に変換する必要があります。Shine-MP3-Encoder を使用してこのジョブを実行できることは知っていますが、プロジェクト内のどこに配置すればよいか、どのように機能するかはわかりません...誰が私を助けてくれますか? 私はそれを感謝します~~

    public static function convertToWav(soundBytes:ByteArray, sampleRate:int):ByteArray   {
        var data:ByteArray = new ByteArray();
        data.endian = Endian.LITTLE_ENDIAN;

        var numBytes:uint = soundBytes.length / 2; // soundBytes are 32bit floats, we are storing 16bit integers
        var numChannels:int = 1;
        var bitsPerSample:int = 16;

        // The following is from https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

        data.writeUTFBytes("RIFF"); // ChunkID
        data.writeUnsignedInt(36 + numBytes); // ChunkSize
        data.writeUTFBytes("WAVE"); // Format
        data.writeUTFBytes("fmt "); // Subchunk1ID
        data.writeUnsignedInt(16); // Subchunk1Size // 16 for PCM
        data.writeShort(1); // AudioFormat 1 Mono, 2 Stereo (Microphone is mono)
        data.writeShort(numChannels); // NumChannels
        data.writeUnsignedInt(sampleRate); // SampleRate
        data.writeUnsignedInt(sampleRate * numChannels * bitsPerSample/8); // ByteRate
        data.writeShort(numChannels * bitsPerSample/8); // BlockAlign
        data.writeShort(bitsPerSample); // BitsPerSample
        data.writeUTFBytes("data"); // Subchunk2ID
        data.writeUnsignedInt(numBytes); // Subchunk2Size

        soundBytes.position = 0;
        while(soundBytes.bytesAvailable > 0) {
            var sample:Number = soundBytes.readFloat(); // The sample is stored as a sine wave, -1 to 1
            var val:int = sample * 32768; // Convert to a 16bit integer
            data.writeShort(val);
        }

        return data;
    }
4

2 に答える 2

1

これは私がしました:

  • (ghostcat.media.WAVWriter) を使用して、サウンドのバイト配列を wav に変換します

  • Shine を使用して、この wav バイト配列を mp3 ファイルに変換します

そのWAVWriterプラグインを調べてください。これにより、物事が本当に簡単になりました

于 2013-10-15T03:57:28.420 に答える