私は、オーディオ出力と入力の両方を使用し、他のアプリからのオーディオミキシングをサポートするSnapchatに似たアプリで振動を実行しようとしていますが、これは最初はもっと難しい作業ですそれがそうであると思った。重要なのは、再生や録音中に振動しようとしていないことです。私は、件名に見つけることができるすべてのドキュメントを読んでから、これは私が理解するようになったものです:録音アプリケーションで振動を実行
、私はAVAudioSessionCategoryPlayAndRecord
- 電話番号
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate)
は、AVAudioSessionCategoryPlayAndRecord
などの記録カテゴリではサポートされていません。 - 他のアプリの音声再生を有効にするには、
AVAudioSessionCategoryOptionMixWithOthers
というオプションを追加します。
したがって、私は私のアプリデリゲートに次の操作を行います。私は試みたが、時に失敗した振動を行うことに
NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:&error];
可能な解決策は以下のとおりです。
は、共有
AVAudioSession
の無効化振動させてから直ちに作動させてください。[[AVAudioSession sharedInstance] setActive:NO error:nil]; AudioServicesPlaySystemSound (kSystemSoundID_Vibrate); [[AVAudioSession sharedInstance] setActive:YES error:nil];
これが成功した振動を実行しますが、その後、私は映画を録画しようとすると、オーディオをすくめている(または何か他のものは、それは非常に静かであることを引き起こしています)。また、I/Oデバイスを最初に削除せずにセッションを非アクティブ化することは許可されていないというエラーが表示されます。
振動する前にカテゴリを変更してから戻します。
[[AVAudioSession sharedInstance] setActive:NO error:nil]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; [[AVAudioSession sharedInstance] setActive:YES error:nil]; AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); [[AVAudioSession sharedInstance] setActive:NO error:nil]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:nil]; [[AVAudioSession sharedInstance] setActive:YES error:nil];
このソリューションは、今すぐに登場しますが、私にとってはうまくいかないようです。カテゴリは設定されているように見えますが、振動は発生しません。 AVCaptureSessionに
usesApplicationAudioSession = YES
を設定しても、これはまだ有効な解決策ですが、まだ動作させていません。
源:
振動しようとしたときに記録を任意の 'AVAudioRecorder'のインスタンスがあります:
はIncaseのあなたはここで彼らが追加されたもののiOSのバージョンすべての再生可能なサウンドとへのリンクがあり、より音に興味を持っていますか? – spassas