Создать медиаплеер с inputtream в android - PullRequest
4 голосов
/ 11 марта 2011

Как мне создать экземпляр медиаплеера с inputtream?

Я вижу только 4 функции для setDataSource.А нет функции получения входного потока?Обязательно ли использовать FileDescriptor для медиаплеера?Это кажется таким простым.но я не мог найти способ.В j2me есть функция, которая Manager.createPlayer(InputStream).И вы можете использовать inputtream для создания медиаплеера.Есть ли способ создать медиаплеер вроде j2me?

Ответы [ 5 ]

5 голосов
/ 17 октября 2012

Как насчет создания HTTP-сервера на принимающей стороне (поток на телефоне), который выводит данные из InputStream по любому HTTP-запросу в OutputStream Socket и предоставляет MediPlayer URI http 127.0.0.1: порт? ЭТО УЖАСНО (но должно работать)

также возможно воспроизводить несжатый звук PCM из InputStream в Android. гуляй это. если вы можете выполнить декодирование в программном обеспечении с помощью JLayer или чего-то еще и вывести его в виде PCM на аудиоинтерфейс, который тоже должен выполнить эту задачу, но без аппаратного ускорения.

Выбери свой яд, наверное. Я выбрал вариант Б.

1 голос
/ 29 июня 2011

Я смотрю на это прямо сейчас (для отправки зашифрованных файлов фильмов на MediaPlayer).Я ошибаюсь, предполагая, что FileInputStream.getFD () является решением этой проблемы?Если вы можете получить FileDescriptor из FileInputStream (если только вам не нужен InputStream, а не FileInputStream), то кажется, что это можно передать прямо в MediaPlayer.

РЕДАКТИРОВАТЬ: Хорошо, поэтому FileInputStream создается с использованием пути или URL, что делает его бесполезным.

1 голос
/ 11 марта 2011

Один из подходов - записать ваш поток в File, а затем передать его в MediaPlayer для воспроизведения.

0 голосов
/ 13 марта 2011

сейчас я копирую InputStream во временный файл и отдаю его медиаплееру.но, вы знаете, это не очень хорошее решение.потому что это медленное решение.если данные большие, игрок должен ждать слишком много.

мой источник меняется.например, это из базы данных.если я не найду решение, я конвертирую свой код в получение файла.но пока я разрабатываю систему, чтобы получить входной поток и воспроизвести ее.как, j2me функция MediaPlayer.createPlayer(InputStream,String)

0 голосов
/ 11 марта 2011

Вы правы, MediaPlayer не будет принимать параметр потока непосредственно в качестве источника данных.Четыре перегруженные версии setDataSource() позволяют данным поступать из файла (используя путь к файлу ИЛИ FileDescriptor) или Uri (местоположение в Интернете или локальный контент: // uri).

Дополнительно, к статическому create() методу можно создать медиаплеер из необработанного ресурса (R.raw.something) или того же стиля Uri, что и выше.

Где вы получаете аудио / видео от другого, чем любойрасположение файла или веб?

...