ver tienen tiene suena sonido reproduce puedo porque musica mis juegos canciones auriculares apple iphone ios background avaudioplayer silent

tienen - no puedo ver mi musica en mi iphone 6



¿Cómo empiezo a reproducir audio en modo silencioso y bloqueado en iOS 6? (8)

Proceso de usuario final

  1. Abre la app
  2. Enciende el ''Modo silencioso''.
  3. Presione ''botón de bloqueo''
  4. La aplicación todavía puede comenzar a reproducir un sonido después de que hayan transcurrido las horas, sin reproducir ningún audio en el ínterin.

Aplicaciones que hacen esto

Muchas aplicaciones de alarma han logrado hacer esto y no creo que estén usando audio silencioso para mantener la aplicación en funcionamiento, ya que no suenan si realmente sales de la aplicación con el hogar.

  • Alarm Clock Pro
  • Mi reloj
  • Alarma de onda
  • Alarmado
  • yo casa
  • ...

... ¿Están manteniendo un bucle en funcionamiento después de haber sido bloqueado de alguna forma o una notificación (que no puede reproducir el sonido en silencio) comenzando la aplicación de nuevo para reproducir el audio, o algún otro método?

Métodos actuales implementados

AVAudioPlayer usando:

AudioSessionInitialize(nil, nil, nil, nil); AudioSessionSetActive(YES); UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory),&sessionCategory);

Y configurando Info.plist para:

Modos de fondo necesarios (UIBackGroundModes): la aplicación reproduce audio (audio)

En el presente

Puedo reproducir audio incluso en silencio cuando la aplicación se está ejecutando y en la pantalla. Si el audio ya se está ejecutando, la aplicación se puede cerrar con el botón de inicio y se ejecutará el audio. PERO si la aplicación no está reproduciendo audio, y la pantalla está bloqueada, todos los hilos se eliminan y el audio nunca se reproduce. ¿Cómo se las arreglan estas aplicaciones para solucionar esto?

Posibles enfoques encontrados hasta el momento

A. Use ''beginBackgroundTaskWithExpirationHandler:'' con un ciclo infinito para mantener la aplicación ejecutándose indefinidamente.

Pros:

  • Parece que puede hacer que esto funcione en muchas situaciones, incluso cuando el usuario presiona el inicio.

Contras:

  • Esto va en contra de las políticas de la manzana hasta donde yo sé.
  • usará más recursos

Comentarios:

Casi tengo esto para trabajar y podría con algunos ajustes. Esto no parece ser lo que están haciendo todas estas otras alarmas, ya que no siguen funcionando si presiona el botón de inicio BTN. Lo que sugiere que utilicen algún método que les permita ejecutar mientras están bloqueados pero no en el BG. (Que es lo que necesito)

Además, cuando pregunta cuánto tiempo le queda, obtiene aproximadamente 10 minutos. Al dejar caer un bucle infinito, los números se ejecutarán en realidad hasta 0 y luego entrarán en los negativos durante horas (probado). No estoy seguro de cómo se comportaría esto en el mundo real o en términos de aceptación de la aplicación.

B. Utilice un bucle de audio silencioso para posar como un centro de medios de reproducción de audio continuo

Pros:

  • Funcionó cuando se bloqueó, y seguirá funcionando en la mayoría de las situaciones.

Contras:

  • Puede fallar si es interrumpido por otro centro de medios y en algunas otras ocasiones.
  • También puede ir contra la política de la manzana.

Comentarios:

Esto puede funcionar en muchas situaciones, pero de lejos no es ideal. Y dado que como digo nuevamente, tiene que haber otro método que no esté documentado.

Conclusiones Hasta ahora

Las pruebas con las aplicaciones enumeradas sugieren que no están utilizando ninguno de los dos métodos que acabo de describir. El método ''A'' parece estar más cerca, pero si se implementa no se comportará cómo se comportan estas aplicaciones.

Utilicé un ticket para desarrolladores de Apple para obtener más información, también publicaré nuevos hallazgos a través de esos medios.

Gracias

Cualquier idea es apreciada, y por su participación hasta el momento.


¿Has registrado que tu aplicación necesita audio en segundo plano?

De los documentos :

R: Estoy usando MPMoviePlayerController para reproducir películas de solo audio y otros archivos de audio en el iPhone en iOS 4. ¿Cómo me aseguro de que mi audio continuará reproduciéndose cuando mi aplicación se cambie al fondo o la pantalla se bloquee?

Primero, debe declarar que su aplicación admite la ejecución en segundo plano. Una aplicación hace esto al incluir la clave UIBackgroundModes en su archivo Info.plist. Esta clave identifica qué tareas de fondo admite su aplicación. Su valor es una matriz que contiene una o más cadenas. Especifique el audio de valor de cadena para indicar que la aplicación reproduce contenido audible para el usuario mientras está en segundo plano.

Luego, si desea asegurarse de que el audio de su película continúe cuando la pantalla se bloquee, debe asignar una categoría apropiada a su sesión de audio. No puede confiar en la sesión de audio predeterminada, cuya categoría (a partir de iPhone OS 2.2) es AVAudioSessionCategorySoloAmbient (o equivalentemente, kAudioSessionCategory_SoloAmbientSound).

Para que la reproducción continúe cuando la pantalla se bloquea, o cuando el interruptor de timbre / silencio está en la posición "silenciosa", use la categoría AVAudioSessionCategoryPlayback (o la equivalente kAudioSessionCategory_MediaPlayback). El Listado 1 muestra cómo inicializar la sesión de audio de su aplicación con la categoría AVAudioSessionCategoryPlayback.


Debes hacer un par de cambios en el archivo plist.

es decir 1) Establecer el modo de fondo requerido para que la aplicación reproduzca audio

2) establecer la aplicación no se ejecuta en segundo plano a SÍ.

NSError *setCategoryErr = nil; NSError *activationErr = nil; [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr]; [[AVAudioSession sharedInstance] setActive:YES error:&activationErr];

Entonces, necesitas escribir estos muchos códigos en AppDelege

Ahora, puede ejecutar audio fácilmente mientras la pantalla del teléfono se bloquea o en segundo plano.



La solución largamente buscada para esto podría ser una justificación basada en la ubicación. Básicamente, use el servicio de fondo de ubicación para justificar las actualizaciones periódicas de su aplicación y así activar una alarma. Esto podría justificarse a Apple al incluir una función como Actualizaciones meteorológicas, que requiere servicios de ubicación.

Voy a analizar esto un poco en el futuro. Por favor, si tiene tiempo para verlo ahora, o si tiene una idea, no dude en publicar.

Feliz cacería.


Mire en SystemSoundID ; su audio se reproduce con el volumen del control deslizante "Timbre y alertas" en Configuración> Sonidos a pesar del volumen establecido por los botones de volumen y el modo silencioso.


Noté que estas aplicaciones son muy claras acerca de sus requisitos. No funcionarán a menos que (1) el usuario permita las alertas de notificación local para esta aplicación, en Configuración> Notificaciones, y (2) la aplicación está en primer plano cuando el usuario bloquea la pantalla (p. Ej., No funcionarán si el usuario hace clic el botón Inicio para salir de la aplicación y luego bloquea la pantalla).

Por lo tanto, es probable que sea una combinación de una notificación local y un sonido silencioso que se reproduce en segundo plano. El sonido silencioso significa que cuando la pantalla está bloqueada, si la aplicación estaba en primer plano, no está suspendida. La notificación local se envía a la aplicación y la aplicación puede responder produciendo el sonido de la alarma. O tal vez no hay sonido silencioso y el sonido de alarma que escuchas es solo el sonido personalizado adjuntado a la notificación local (pero si es así, entonces no tengo claro por qué la aplicación requeriría estar en primer plano cuando la pantalla está bloqueada )

Además, aunque no lo he probado, el comportamiento del interruptor silencioso en el iPhone puede haber cambiado en 5.1 en respuesta al incidente de Mahler (http://www.nytimes.com/2012/01/13/nyregion/ringing- finally-stopped-but-conferences: alarm-persists.html). Esto explicaría por qué los desarrolladores comentan que podrían hacer esto hasta 5.1.


Si anteriormente has estado haciendo esto en tu aplicación:

AudioSessionInitialize (NULL, NULL, NULL, NULL); AudioSessionSetActive(true); // Allow playback even if Ring/Silent switch is on mute UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory),&sessionCategory);

Hice que un usuario me dijera que el audio no funcionaba en una aplicación (¡mucho antes de iOS5!). Resultó que su anillo / interruptor de silencio estaba en "silencio". Así que agregué este código, y hace que la configuración "silenciosa" sea anulada. Esto es útil si tiene una aplicación de música, por ejemplo, y desea que la música continúe reproduciéndose.


Solo un cheque, ¿falta su código en esta línea?

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];