Mam app, które musi posiadać:Korzystanie Spotify/tło muzyczne z kamery otwartym
- tle gra muzyka podczas korzystania z aplikacji (Np. Spotify)
- tło odtwarzania muzyki podczas oglądania filmu z AVPlayer
- zatrzymać odtwarzanie muzyki podczas nagrywania filmu
Podoba snapchat, aparat-viewcontroller jest częścią „swipeview” i dlatego zawsze włączony.
Jednak podczas otwierania i zamykania aplikacji muzyka tworzy krótki "trzask" hałas/dźwięk, który niszczy muzykę.
Nagrałem go tutaj: https://soundcloud.com/morten-stulen/hacky-sound-ios (3 wystąpień)
używam tych ustawień do zmiany AVAudiosession w appdelegate didFinishLaunchingWithOptions:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord,withOptions:
[AVAudioSessionCategoryOptions.MixWithOthers,
AVAudioSessionCategoryOptions.DefaultToSpeaker])
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print("error")
}
używam kontrolę LLSimpleCamera do nagrywania wideo i Skonfigurowałem tam sesję na:
_session.automaticallyConfiguresApplicationAudioSession = NO;
Wydaje inni mają ten sam problem z innymi bibliotekami kamer, a także: https://github.com/rFlex/SCRecorder/issues/127
https://github.com/rFlex/SCRecorder/issues/224
Ten facet usunął audioDeviceInput, ale trochę trzeba, że do nagrywania wideo. https://github.com/omergul123/LLSimpleCamera/issues/48
Próbowałem również z kodem Apple "AvCam" i nadal mam ten sam problem. Jak Snapchat to robi ?!
Każda pomoc zostanie bardzo doceniona, a ja z chęcią udzielę więcej informacji lub kodu!
Czy znalazłeś rozwiązanie? Potrzebuję tego samego i nie mogę tego osiągnąć. –
Znalazłem rozwiązanie, ale nie jest optymalne. Dodaję audiodeviceInput, gdy zaczynam nagrywanie ([self.session addInput: _audioDeviceInput];) i usuwam, gdy skończę. Jednocześnie ustawiam kategorię AVAudioSession na AVAudioSessionCategoryPlayAndRecord, którą również później przełączam. Aby zrekompensować dziwne zachowanie UI kamery, pojawia się na wierzchu widok rozmycia. –
Tak, właśnie tego próbowałem. Nie optymalny, jak powiedziałeś. Próbowałem również zachować kategorię PlayAndRecord za pomocą MixWithOthers, DuckOthers, DefaultToSpeaker, ale podkład muzyczny zatrzymuje się na sekundę, gdy inicjuję sesję. Również muzyka jest zbyt głośna (nawet w przypadku Duckothers) i nie słyszę dobrze własnego dźwięku podczas grania. –