MP3 streaming en C # .NET 4.5.1 MVC 5.2.2 en Samsung 6S
Tengo que utilizar un TTS (texto a hablar) SaaS de ReadSpeaker con el fin de agregar audio a la aplicación que estoy desarrollando.
Ahora, la cuenta básica de SCAPI que estamos usando actualmente tiene una configuración básica, simplemente estableció una URL y obtiene un flujo de MP3 que necesitamos para la salida. Debido a que la clave de servicio está en la URL, no podemos usarla en la interfaz, por lo que necesitamos transmitir los archivos a través de nuestros servidores.
- La actividad no se reproducirá al azar, muestra sólo la pantalla en blanco en Samsung
- El dispositivo Samsung con Android 5.0 cambia el color de la barra de progreso
- Cómo saber si Samsung Game Tuner está cambiando la relación de resolución
- Logcat está siendo "spam", resultando en "Demasiada salida para procesar"
- Camera.Parameters bloqueo específico del dispositivo (Samsung S3 Mini)
Todo funcionó bien hasta que probé el código de desarrollo en el Samsung 6S. Donde no jugar en absoluto, sin embargo, los servicios de enlace propio funciona, es decir, esto funciona:
<audio controls> <source src="http://tts.readspeaker.com/a/speak?key=[ServiceKey]&lang=en_uk&voice=Female01&audioformat=mp3&volume=200&text=test text 2" type="audio/mp3"> Your browser does not support the audio element. </audio>
mientras que el mismo código exacto a través de nuestros servidores no en Samsung 6S con el mismo enlace que la fuente de flujo en el controlador.
He pasado por varias maneras diferentes de transmitir el archivo en el servidor, pero simplemente caído plana cada vez en Samsung 6S (nuevo de la caja sin mods).
Aquí está el código que he usado.
Controlador vacío:
string url = "http://tts.readspeaker.com/a/speak?key=[ServiceKey]&lang=en_uk&voice=Female01&audioformat=mp3&volume=200&text=test text 2"; HttpWebRequest HttpWRequest = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)HttpWRequest.GetResponse(); Stream stream = response.GetResponseStream(); MemoryStream ms = new MemoryStream(); stream.CopyTo(ms); Response.AddHeader("Content-Type", response.ContentType); Response.AddHeader("Content-Length", response.ContentLength.ToString()); Response.AddHeader("Access-Control-Allow-Origin", "*"); Response.AddHeader("Connection", "close"); Response.Flush(); audioData = ms.ToArray(); Response.BinaryWrite(audioData); Response.End();
Standard FileStreamResult
donde tomo el código anterior de MemoryStream y enviar a través de ello, es decir, con un controlador FileStreamResult en lugar de establecer los encabezados manualmente:
return new FileStreamResult(ms, response.ContentType);
e incluso un FileStreamResult modificado que encontré aquí que permite la transmisión en tiempo real de la URL sin necesidad de descargarlo al servidor.
También he utilizado este método para obtener los datos de bytes de ReadSpeaker:
byte[] audioData; using (WebClient client = new WebClient()) { audioData = client.DownloadData("http://tts.readspeaker.com/a/speak?key=[ServiceKey]&lang=en_uk&voice=Female01&audioformat=mp3&volume=200&text=test text 2"); }
Y luego una miríada de formas de salida, pero siempre el resultado es el mismo, funciona bien en todo lo demás (incluso IE7, no con las etiquetas de audio, pero aún), pero no con Samsung 6S.
No sé que debo estar perdiendo algo muy básico aquí, porque todo lo que he probado funciona muy bien en todo lo demás, pero en el Samsung 6S nada. Incluso en otros Androids de gama alta como el LG G4 funciona, pero en el 6S … nada, chorro el enlace de servicio directo en una etiqueta de audio funciona bien?
Así que sé que debo estar haciendo algo mal aquí, alguna idea?
- Sincronización personalizada que no funciona con la cuenta de Google (com.google) en algunos dispositivos Samsung
- SendUserActionEvent () es null
- Antecedentes de los procesos de muerte al azar mientras la aplicación se está ejecutando en Samsung S3
- Android Capture USB Mic Audio sin root
- ¿Qué navegador utiliza el Samsung Galaxy?
- Sensor de proximidad Android sólo en los dispositivos Samsung
- Toma la foto falla en los teléfonos Samsung
- Desplome nativo de Android desde /system/framework/arm/boot.oat
La codificación parece estar bien.
Samsung tiene su propio TTS, que puede ser la interferencia con el suyo propio. es posible que desee jugar con él, desinstalarlo o habilitarlo. http://www.samsung.com/in/support/skp/htg/16082