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?
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).
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.
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).
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