Воспроизведение связанных mp3 файлов через flash с as3 - PullRequest
0 голосов
/ 23 августа 2009

У меня есть список mp3-файлов, которые я автоматически собираю в разные, более крупные mp3-файлы с помощью команды * nix 'cat'. Они отлично работают для воспроизведения на любом установленном mp3-плеере, в котором я их тестировал, но я также написал небольшой, простой в использовании mp3-плеер на ActionScript 3, где я хотел воспроизводить мои (объединенные) mp3-файлы через Интернет.

Однако проигрыватели Flash Player, похоже, не в состоянии прочитать весь конкатенированный файл - только его первую часть (первый, меньший, mp3-файл, содержащийся в большем файле). Как я могу решить это? Мне бы хотелось решить эту проблему с помощью ActionScript вместо создания связанных файлов любым другим способом.

Мой ActionScript выглядит примерно так:

...
    private function loadTrackAndPlay():void {
        track = new Sound();
        track.addEventListener(Event.COMPLETE, playTrack);
        var req:URLRequest = new URLRequest('concatinated.mp3');
        track.load(req);
    }

    private function playTrack(e:Event):void {
        track.removeEventListener(Event.COMPLETE, playTrack);
        track.play();
    }
...

Ответы [ 2 ]

1 голос
/ 23 августа 2009

Должно быть допустимо склеивать отдельные кадры MP3. Тем не менее, многие медиаплееры не справятся, если кадры имеют разные основные настройки кодирования (особенно частота и каналы / режим).

Вы также должны удалить любые теги ID3 из файлов (обе версии: ID3v1 с конца и ID3v2 с начала), поскольку они не являются действительными данными MP3, и убедитесь, что файлы начинаются и заканчиваются на границе кадра. Большинство проигрывателей пропускают недействительные данные в поисках следующего кадра, как указано в слове синхронизации MP3, но Flash может быть более разборчивым, особенно когда они неожиданно оказываются в середине файла.

1 голос
/ 23 августа 2009

Я не верю, что результатом того, что вы делаете, является действительный mp3-файл. Кроме того, Flash очень требователен к MP3, которые он может воспроизводить. Лучше всего загружать файлы по отдельности и просто прослушивать событие SOUND_COMPLETE, исходящее от объекта SoundChannel (вы получаете экземпляр SoundChannel при запуске метода воспроизведения звука).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...