Я создаю приложение flex для воспроизведения звука. Я использую FileReference для просмотра mp3-файла. Как я могу использовать этот объект FileReference для воспроизведения этого файла с использованием метода воспроизведения Sound Class. Или я могу загрузить данные из этого объекта FileReference в файл byteArray. Можно ли воспроизвести byteArray с помощью Sound Class? СпасибоКак использовать FileReference для воспроизведения звука?
ответ
Должно быть возможно. Сначала вы загружаете mp3 из FileReference, затем вы создаете new Sound()
, затем вызываете loadCompressedDataFromByteArray(loadedBytes,loadedBytes.length)
, а затем воспроизводите его. Не забудьте перемотать ByteArray в исходную позицию, если это не сделано с помощью FileReference, так как эта функция использует текущую позицию как начало для файла.
Update: Если вы используете Flash Player 10, этот метод недоступен. Для этого попробуйте создать URLRequest
из FileReference.name
, а затем загрузите звук с помощью этого кованого запроса.
var ur:URLRequest=new URLRequest(fileRef.name);
var snd:Sound=new Sound(ur);
snd.addEventListener(Event.COMPLETE,sndLoaded);
Затем вы обрабатываете загруженный звук как готовый.
Если вы используете FileReference для загрузки mp3-файла в звуковой объект, тогда он будет воспроизводиться неправильно, потому что данные сжаты (звук будет шумом).
Во всяком случае есть альтернативная библиотека кода, который также решает проблему ...: http://flexiblefactory.co.uk/flexible/?p=46
Внутри статьи вы также можете найти ссылку на этот почтовый файл:
http://www.flexiblefactory.co.uk/flexible/wp-content/uploads/mp3filereferenceloaderlib.zip
Я не 't использовать Flex, но для настройки в Flash CS я бы зашел в zip-файл и скопировал файлы папки org в папку моего проекта (как вложенную папку), а затем предоставил код ниже в .as-файле, а также FLA, который является этапом.
Вам также необходимо создать три спрайта или MovieCips для использования в качестве кнопок. Open (имя-экземпляра: btn_open)
- Файл
- Play (имя-экземпляра: btn_play) (имя-экземпляра: btn_stop)
- Стоп
* AS3 CODE *
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLLoaderDataFormat;
import flash.utils.ByteArray;
import flash.media.Sound;
import flash.media.SoundChannel;
import org.audiofx.mp3.MP3FileReferenceLoader;
import org.audiofx.mp3.MP3SoundEvent;
public class MP3_fileRef_test extends MovieClip
{
private var loader:MP3FileReferenceLoader;
private var fileReference:FileReference;
public var _loadedsound:Sound = new Sound;
public var channel_obj:SoundChannel = new SoundChannel();
public var mp3_isPlaying:Boolean;
public function MP3_fileRef_test()
{
mp3_isPlaying = false;
btn_open.buttonMode = true;
btn_open.addEventListener(MouseEvent.CLICK, mp3Open_handler);
btn_play.buttonMode = true;
btn_play.addEventListener(MouseEvent.CLICK, audio_play);
btn_stop.buttonMode = true;
btn_stop.addEventListener(MouseEvent.CLICK, audio_stop);
loader = new MP3FileReferenceLoader();
loader.addEventListener(MP3SoundEvent.COMPLETE, mp3Loader_Complete);
fileReference=new FileReference();
fileReference.addEventListener(Event.SELECT,fileReferenceSelectHandler);
}
//OPEN BROWSE WINDOW & TRIGGER EVENT FUNCTION fileReferenceSelectHandler
private function mp3Open_handler (ev:MouseEvent):void
{
fileReference.browse([new FileFilter("mp3 files","*.mp3")]);
}
private function fileReferenceSelectHandler(e:Event):void
{
loader.getSound(fileReference);
}
private function mp3Loader_Complete (loader_mp3Data:MP3SoundEvent):void
{
//CHECK IF THERE'S A PREVIOUSLY OPENED FILE PLAYING
//OTHERWISE WILL BE MULTIPLE SOUNDS PLAYING OVER EACH OTHER
if (mp3_isPlaying == true)
{
channel_obj.stop();
mp3_isPlaying = false;
}
_loadedsound = new Sound;
_loadedsound.addEventListener(Event.COMPLETE, soundLoad_Complete);
//PUT (MP3SoundEvent) LOADER DATA INTO NEW _loadedsound SOUND OBJECT
_loadedsound = loader_mp3Data.sound;
//UNLOCK BELOW FOR AUTO-START WITHOUT PRESSING PLAY BUTTON
//channel_obj = _loadedsound.play(); //auto
//mp3_isPlaying = true; //auto
}
//WHEN SOUND IS LOADED AND READY FOR USE
function soundLoad_Complete(e:Event):void
{
//Do whatever else is needed on successful load
//eg: trace or update status text, make an MC visible etc
}
//PLAY AUDIO ON CLICK
function audio_play (e:MouseEvent):void
{
if (mp3_isPlaying == false)
{
channel_obj = _loadedsound.play();
mp3_isPlaying = true;
}
}
//STOP AUDIO ON CLICK
function audio_stop (e:MouseEvent):void
{
if (mp3_isPlaying == true)
{
channel_obj.stop();
mp3_isPlaying = false;
}
}
}//END CLASS
}//END PACKAGE
Надеюсь, это поможет. Мир, я здесь ...
Ссылки мертвы, но я нашел исходный код по следующей ссылке: https://code.google.com/p/in-spirit/source/browse/trunk/projects/FluidSolver3D/src/?r=91# SRC% 2Forg% 2Faudiofx% 2Fmp3 –
- 1. Как создать кнопку воспроизведения для воспроизведения звука?
- 2. использовать duktape на ARM для воспроизведения звука
- 3. Встряска для воспроизведения звука
- 4. Поиск файлов для воспроизведения звука
- 5. Утилизация звука после воспроизведения звука?
- 6. Использование PHP для воспроизведения звука
- 7. Как использовать кнопку для воспроизведения звука с помощью ListView?
- 8. Как использовать кнопку для изменения изображения и воспроизведения звука?
- 9. Gridview OnItemНажмите для воспроизведения звука
- 10. MATLAB: Остановка воспроизведения звука
- 11. Нажатие кнопки для воспроизведения звука
- 12. Как прокрутить список воспроизведения для звука
- 13. Как создать медиа-контроллер для воспроизведения звука?
- 14. Как настроить медиа-контроллер для воспроизведения звука?
- 15. Как отслеживать положение воспроизведения звука?
- 16. остановка воспроизведения нового звука
- 17. Можно ли использовать Howler.js для воспроизведения звука с удаленного сервера?
- 18. Как использовать RingtonePreference для воспроизведения звуков уведомлений
- 19. Завершение воспроизведения аудио звука?
- 20. Ошибка воспроизведения звука Java
- 21. Звук воспроизведения звука MIDlet
- 22. Начало воспроизведения звука отключено
- 23. Захват воспроизведения звука
- 24. Для Loop для воспроизведения звука в JavaScript
- 25. Какую технологию использовать для воспроизведения звука на iPhone?
- 26. Posible SoundManager 2 для воспроизведения местного звука?
- 27. Остановка записи звука и продолжение воспроизведения звука
- 28. Поиск решений для воспроизведения звука онлайн j2me
- 29. Ввод фона на iOS4 для воспроизведения звука
- 30. Подавление громкости звука системы для воспроизведения звука изнутри приложения
Я не могу найти этот метод, когда пытаюсь вызвать методы класса звука. Что я делаю неправильно? –
Я использую sdk 3.6. Является ли это причиной того, что я не могу использовать этот API-класс Sound Class? –
Хм, он говорит, что он был введен в FP11 и AIR 3. – Vesper