Самият аз не съм правил това, но начинът, по който бих постъпил, следва следния процес:
- Заредете MP3 файла
- Декодирайте MP3 файла
- Извадете битовете, от които се нуждаете
- Кодирайте извлечените данни
Всичко по-долу трябва да се счита за нетестван псевдо код.
Стъпка 1: Заредете MP3 файла
Предполагам, че вече имате начин да заредите компресирания MP3 файл в паметта. Ако не, има много информация за тази стъпка.
Стъпка 2: декодирайте MP3 файла
Класът Sound
разкрива метода loadCompressedDataFromByteArray
(docs), който приема компресирания MP3 файл като ByteArray
и го декодира до необработени звукови данни.
Пример:
var mySound:Sound = new Sound();
mySound.loadCompressedDataFromByteArray(myMP3Data, myMP3Data.length);
Стъпка 3: Извлечете част от звука
Използване на extract
(документи) (както е описано във връзката във вашия въпрос) можете да извлечете сурови звукови данни от Sound
обект. Подавате ByteArray
обект, който да бъде попълнен с данните, посочвате къде искате да бъде „изрязването“ и дължината на клипа, който да извлечете.
Данните се съхраняват с помощта на 44100 проби в секунда (ляв + десен канал) и изчисленията по-долу се основават на това. Може да греша за това, така че ако не работи според очакванията, моля, потърсете това допълнително.
Пример:
var sampleFrequency:int = 44100;
var startTimeInSeconds:Number = 30.0;
var lengthInSeconds:Number = 15.0;
// Calculate the position to start the clip (in samples)
var startPosition:Number = Math.round(startTimeInSeconds * sampleFrequency);
// Calculate the number of samples to extract
var samplesLength:Number = Math.round(lengthInSeconds * sampleFrequency);
var extractedBytes:ByteArray = new ByteArray();
mySound.extract(extractedBytes, samplesLength, startPosition);
Стъпка 4: Кодирайте извлечения звук обратно в MP3
Сега, когато имате звуковите данни като ByteArray, има няколко начина да ги кодирате обратно в MP3 формат. Този предишен отговор на StackOverflow споменава тази библиотека, но може да има други библиотеки, по-подходящи за вашите задачи.
person
david.emilsson
schedule
26.10.2014