wielozadaniowość iOS dla aplikacji do nagrywania dźwięku

Piszę aplikację, która nagrywa dźwięk. Przyglądam się możliwości obsługi wielozadaniowości podczas nagrywania audio (w tle).

Odpowiedź wydaje się być NIE z tego, co czytałem do tej pory, zwłaszcza, że program ma na celu zwolnienie wszelkich zasobów systemowych używanych po wyłączeniu.

Tak się zastanawiam, czy jest możliwe, aby użytkownik przełączyć się do innej aplikacji w iOS, podczas gdy moja aplikacja nadal przechwytywanie dźwięku w tle?

Author: dineth, 2010-10-03

3 answers

Możesz. Skype tak robi.

Prawdopodobnie musisz ustawić <key>UIBackgroundModes</key><array><string>audio</string></array> W Info.plist i musisz upewnić się, że sesja audio jest aktywna/uruchomiona / cokolwiek przed przełączeniem aplikacji (założenie jest takie ,że nie zaczniesz nagle nagrywać / odtwarzać muzyki / cokolwiek, gdy aplikacja jest w tle).

Dokumenty mówią, że "audio" pozwala odtwarzać dźwięk w tle, ale prawdopodobnie dotyczy to również nagrywania dźwięku. Jeśli to nie zadziała, jest kilka rzeczy, które możesz można spróbować:

  • Ustaw zarówno "voip", jak i "audio".
  • Odtwarzaj ciszę (najłatwiej jest to zrobić z interfejsem audio Queue API).
 25
Author: tc.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-03 01:40:26

Apple wydaje się akceptować aplikacje dla iOS4, które nadal nagrywają dźwięk po umieszczeniu w tle, więc może to być dowód na istnienie. Aplikacja musi zadeklarować się jako dźwięk w tle, wstępnie przydzielić wszystkie zasoby audio i rozpocząć nagrywanie audio, zanim aplikacja zostanie zablokowana, a także oczekiwać, że zostanie zabity, jeśli jego pamięć lub zasoby audio są wymagane przez aplikację foreground. Tak więc każde wykorzystanie zasobów systemowych powinno być absolutnym minimum.

 5
Author: hotpaw2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-03 01:51:31

Tak!

Twoja aplikacja będzie kontynuować nagrywanie / odtwarzanie dźwięku, gdy zostanie on wysłany w tle.

Nie próbuj używać VOIP, chyba że nie chcesz publikować aplikacji w apple store (powiedzmy, że będziesz transmitować aplikację za pomocą sklepów innych firm, które instalują profil provisioning).

 1
Author: Iman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-25 23:09:17