Crear mediaplayer con inputstream en android
¿Cómo puedo crear la instancia de mediaplayer con inputstream?
Veo sólo 4 función para setDataSource. ¿Y no hay ninguna función que recibe entradas? ¿Es necesario utilizar FileDescriptor
en mediaplayer? Parece tan básico. Pero, no pude encontrar un camino. En j2me, hay una función que Manager.createPlayer(InputStream)
. Y puede utilizar inputstream para crear un reproductor multimedia. ¿Hay una manera de crear un reproductor multimedia como j2me?
- Error de MediaPlayer de Android (1, -38) y (-38, 0)
- Android Detener música de fondo cuando la tecla Inicio presionada
- Mediaplayer actualización de progreso a seekbar no suave?
- Android AudioRecord y MediaRecorder
- Grabar audio con MediaRecorder y reproducir simultaniosamente con MediaPlayer
- MediaPlayer java.io.IOException: Prepare failed .: status = 0x1 con Huawei ALE-L21
- ¿Cómo evitar que Mediaplayer se detenga cuando la pantalla se apaga?
- El sonido de los medios de comunicación de teléfono deja de reproducir después de 5 veces
- Cómo obtener el tipo de contenido de ShoutCast 7.html
- Android - MediaPlayer's en Preparado Llamado incluso antes de que el flujo se prepare en Android 4.0+
- Android 4.0.4 MediaPlayer prepara el problema usando urls RTSP
- ¿Cómo desactivar mi servicio multimedia para una llamada entrante? Mi AudioManager no funciona
- Audífonos para auriculares Jack
Un acercamiento puede ser escribir su corriente a un File
y después darlo al MediaPlayer
para la reproducción.
¿Qué hay de hacer un servidor HTTP en el lado receptor (un hilo en el teléfono) que envía los datos del InputStream en cualquier solicitud HTTP al OutputStream del Socket y proporciona MediPlayer con URI http 127.0.0.1: un puerto? QUE ES FEO (pero debería funcionar)
También es posible reproducir audio sin comprimir PCM desde un InputStream en android. Goole él Si usted puede hacer la decodificación en el software con JLayer o algo y la salida como PCMto la interfaz de audio que debe hacer el truco también, pero sin aceleración de hardware.
Elige tu veneno, supongo. Elegí la opción B.
Estoy buscando en este momento (para enviar archivos de película cifrada a MediaPlayer). ¿Estoy equivocado al suponer que FileInputStream.getFD () es la solución a esto? Si usted puede conseguir un FileDescriptor de un FileInputStream (a menos que usted necesite InputStream y no FileInputStream) entonces parece que se puede pasar a la derecha en el MediaPlayer.
EDIT: Bueno, por lo que FileInputStream se crea utilizando una ruta de acceso o URL, por lo que es inútil.
Usted está correcto, MediaPlayer
no tomará un parámetro de flujo directamente como su fuente de datos. Las cuatro versiones sobrecargadas de setDataSource()
permiten que los datos provengan de un archivo (utilizando la ruta del archivo O un FileDescriptor
) o un Uri (ubicación web o contenido local: // uri).
Además, el método static create()
puede crear un reproductor de medios de un recurso crudo (R.raw.something) o el mismo estilo Uri que el anterior.
¿De dónde se obtiene el audio / vídeo desde una ubicación de archivo o la web?
Por ahora, copio el InputStream
a un archivo temporal y lo doy a mediaplayer. Pero, ya sabes, no es una buena solución. Porque, es la solución lenta. Si los datos son grandes, el jugador debe esperar demasiado.
Mi fuente está cambiando. Por ejemplo, viene de la base de datos. Si no encuentro solución, convierto mi código a conseguir el archivo. Pero, por ahora desing el sistema para conseguir entradas y para jugarlo. Como, la función j2me de MediaPlayer.createPlayer(InputStream,String)