スピーカーから音楽を再生することについていくつか質問があります。次のリンクで例を見つけました AVAudioPlayer出力をスピーカーに取得する方法 ですが、問題は、「スピーカー」を介して音楽の再生を正常に実装したことを確認する方法です? リンクとしてコードを書きましたが、iPhoneシミュレーター(Macbook)で「スピーカー」をアクティブにする前後で違いはないようです!!
アップデート:
以下は、スピーカーをアクティブにする方法です。
UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord ; // 1
AudioSessionSetProperty (
kAudioSessionProperty_AudioCategory, // 2
sizeof (sessionCategory), // 3
&sessionCategory // 4
);
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; // 1
AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute, // 2
sizeof (audioRouteOverride), // 3
&audioRouteOverride // 4
);
以下は、スピーカーを無効にする方法です
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None; // 1
AudioSessionSetProperty (
kAudioSessionProperty_OverrideAudioRoute, // 2
sizeof (audioRouteOverride), // 3
&audioRouteOverride // 4
);
kAudioSessionProperty_AudioRoute の内容を NSLog(@"%@",kAudioSessionProperty_AudioRoute ); として確認しようとしたとき。、シミュレーターがクラッシュしました。
ドキュメントを調べたところ、CFStringRef は NSString 型とほぼ同じです。したがって、NSLog を使用して kAudioSessionProperty_AudioRoute の値を出力するのが合理的です。
あなたが言ったように、kAudioSessionProperty_AudioRouteは「ヘッドフォン」または「スピーカー」であるはずですが、貼り付けたコードが正しく、スピーカーを有効にする方法が正しい場合、まだ作成できません。手伝って頂けますか?