Позвольте мне сначала заявить, что я не знаю Java. Я разработчик .NET с солидными навыками работы с C#, но на самом деле я одновременно пытаюсь изучать Java и Android SDK (я знаю, что это, вероятно, не идеально, но да ладно, я предприимчив :))

Тем не менее, моя конечная цель — написать потоковый медиаплеер для Android, который может принимать потоки Windows Media. Я могу ограничиться Android 2.0 и более поздними версиями, если мне это нужно. Мое текущее устройство — Motorola Droid под управлением Android 2.0.1. Есть одна служба онлайн-радио, которую я неукоснительно слушаю на своем ПК, которая предлагает только потоковую передачу Windows Media, и я хотел бы перекодировать поток, чтобы мое устройство Android могло его воспроизводить.

Возможно ли такое? Если да, будет ли это возможно (т. Е. Будет ли это слишком интенсивно использовать ЦП и убивать батарею)? Должен ли я пытаться сделать это с помощью NDK в собственном коде вместо Java? Я не против написать какую-то промежуточную службу, которая работает на настольном компьютере (даже на C#), но в идеале я хотел бы сначала изучить варианты, основанные исключительно на устройстве. С чего начать?

Заранее благодарим за любую информацию, которую вы можете предоставить!

1
Scott Anderson 11 Янв 2010 в 21:04
1
DROID воспроизводит Windows Media. Следовательно, вам не нужно выполнять какое-либо перекодирование, если Windows Media доступен через соответствующий стандартам URL-адрес RTSP или HTTP.
 – 
CommonsWare
11 Янв 2010 в 21:09
Конкретная услуга, о которой я говорю, — это радио XM. Я могу пройти аутентификацию в браузере, но поток никогда не воспроизводится.
 – 
Scott Anderson
11 Янв 2010 в 21:10
1
Если поток защищен DRM, Android не будет его воспроизводить, и вам понадобится черный ящик от Microsoft, чтобы расшифровать его в любой форме.
 – 
Jess
12 Янв 2010 в 00:07

2 ответа

Наличие прокси-сервера на вашем ПК, который захватывает аудиовыход Windows, кодирует его и отправляет на ваш телефон, вполне возможно. У меня было подобное лет 8 назад на линуксовом кпк (sharp zaurus). Хитрость заключается в том, что вы не пытаетесь декодировать или получать доступ к радиопотоку XM напрямую, вы просто записываете то, что отправляется на динамики на вашем рабочем столе, и повторно отправляете его. Из-за перекодирования будет небольшое снижение качества звука, но это не должно быть слишком плохо.

0
davr 4 Фев 2010 в 20:00

Я выполнил транскодирование из облака в телефон с помощью альфа-версии облачных служб Android. Транскодирование прозрачно выполняется на сервере, а полученный поток передается на телефон. Может стоит посмотреть. http://positivelydisruptive.blogspot.com/ 08/2010/streaming-m4a-files-using-android-cloud.html

0
Joel Grenon 9 Авг 2010 в 08:32