PDA

Просмотр полной версии : Воспроизведение .aac


kyzi007
25.11.2009, 21:19
var connect_nc:NetConnection = new NetConnection();
connect_nc.connect(null);
var stream_ns:NetStream = new NetStream(connect_nc);
stream_ns.play("target.aac");

ни ругани ни звука. Винамп файл воспроизводит.
Возможно ли вообще проиграть такой файл?

http://www.teamer.ru/files/00/00/00/00/02/172421/target.aac
воть он лежит

iflamberg
26.11.2009, 12:40
забейте на него.
1) aac+ не воспроизводится
2) потоковый aac не воспроизводится
3) aac воспроизводится NetStream, а звук Sound => код становится намного сложнее;

wvxvw
26.11.2009, 13:31
Флекс не умеет встраивать никакие звуки кроме mp3, а флеш ЦС4 как раз может быть и может AAC встроить... ну, попробовать по крайненей мере никто не мешает. Тогда можно будет грузить SWF с встроеным звуком. Если и флеш не может, или это технологически не подходит, можно написать свой ран-тайм конвертер для загрузки звука с последующей конвертацией его в SWF.

kyzi007
26.11.2009, 16:00
Ой я делаю потоковый плеер - внедрение не надо.
И флекса тоже...
http://help.adobe.com/ru_RU/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d46.html

меня вот эта строка смущает
Аудио
Формат AAC+ / HE-AAC / AAC v1 / AAC v2

Контейнер
MPEG-4:MP4, M4V, F4V, 3GPP

Я так поняла что aac покатит только в другом контейнере. Мне обещали переделать...

VVall
26.11.2009, 16:44
В другом контейнере покатит, но потоковый плеер так просто не получится - во Flash сделано так, что эти файлы грузятся только целиком. Предположительно проблема решается переносом метаданных в начало файла, в этом случае можно начать воспроизведение недозагруженного файла. На практике у меня не получилось это сделать ни одним из способов, которые обсуждались на разных форумах, всё равно файл грузился целиком перед воспроизведением. Впрочем, я особо не пытался, пробовал для эксперимента, а не для дела.

iflamberg
26.11.2009, 17:33
расскажите, что получится

kyzi007
26.11.2009, 18:55
Обязательно
Мне самой интересно))
По идее хотят шнягу даже не "аля ютуб" а "аля винамп" ...

iflamberg
26.11.2009, 19:08
ну-ну. очень многие хотят. Только реально напишет только тот, кто сможет написать аудиокодек. А пока ни в одном из плееров никто не пытался даже не то что кодек сделать, а даже просто выпарсить мета-данные(в потоковом аудио метаданные флеш не парсит).

Updated.
Хотя, вот у wvxvw, я знаю, наработки были в этой теме ;)

wvxvw
26.11.2009, 23:16
Это, разбить на кадры mp3 или на семплы AAC - это даааалеко не то же самое, что кодек написать :) Кодеки пишуть люди с двумя головами и у каждой по докторской степени - одна по биологии, другая по волновой физике и третья по програмированию :D

kyzi007
27.11.2009, 00:14
А метаданные мне со стороны сервера все придут в хмке.
К сожалению голова одна... :))

iflamberg
27.11.2009, 11:50
А метаданные мне со стороны сервера все придут в хмке.
ну вот. еще один разработчик, который поленился сделать парсер метаданных =) впрочем, как и я =)

kyzi007
27.11.2009, 15:44
Тупо всунутый вместо flv в видео плеер заиграл.
И даже вроде начал играть до конца загрузки.

iflamberg
27.11.2009, 17:01
в смысле в контейнере flv вставлен в netstream, или в чужой бесплатный видео-плеер всунутый?

kyzi007
27.11.2009, 17:04
Нет я в свой плеер вместо video.flv подсунула test.aac )

_stream = new NetStream(_connection);
_stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
_stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
_video.attachNetStream(_stream);
_stream.play('test.aac');

iflamberg
27.11.2009, 17:11
ты же до этого пробовала точно так же
var connect_nc:NetConnection = new NetConnection();
connect_nc.connect(null);
var stream_ns:NetStream = new NetStream(connect_nc);
stream_ns.play("target.aac");

kyzi007
27.11.2009, 19:26
_video.attachNetStream(_stream);//private var _video:Video;
этого не было.
А я уже и не помню какую из попыток выкладывала).