問題タブ [audiosession]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - AudioSessionは実際にはOpenALと同じものですか?
AudioSessionは実際にはOpenALと同じものですか?
iphone - kAudioSessionProperty_AudioRouteプロパティからどのようなルートを取得できますか?
Appleの男は面白くしようとして、ドキュメントに次のように書いています。
実際にはどのような戻り値が可能ですか?
iphone - そのプロパティを聞く方法は?
では、kAudioSessionProperty_AudioInputAvailable に関する通知を受け取りたい場合は、どうすればよいでしょうか?
iphone - ミュートスイッチがオンのPlaySystemSound
AudioSession
ミュートスイッチがオンの場合でもオーディオを許可する「再生」カテゴリに設定する必要があります。これは私がしていることですが、スイッチをオンにしても音はミュートされます。
編集:ちなみに、アプリはサウンドパッドです。音を鳴らすことがアプリの唯一の目的です。これについてAppleDocが言っていることは次のとおりです。
このカテゴリは、オーディオの再生が最も重要なアプリケーションに使用します。画面がロックされていて、リング/サイレントスイッチがサイレントに設定されている場合でも、オーディオは再生されます。
編集2:ミュートスイッチをオンにすると、ヘッドホンからも音が再生されません。私はユーザーが王様であることを知っています。ミュートスイッチにはその目的があることを私は知っています。それは問題ではありません。AudioSession
カテゴリをに設定しkAudioSessionCategory_MediaPlayback
ても期待した結果が得られないという事実について、私は答えを得ようとしています。
編集3:ジョナサン・ワトモフの提案に従って、私はAudioServices
kAudioServicesPropertyIsUISound
プロパティを設定しましたが、それでも運がありません。私は何かが足りないのですか?
iphone - SpeakHere の AudioQueue コードが iPad で失敗する
作成中のアプリで SpeakHere オーディオ クラスを使用しており、再生と録音を同時に行う必要があります。
ユニバーサル アプリ ビルド (iPad と iPhone をターゲット) で 3.2 デバイス ターゲットの最新の SDK を使用しています。
このアプリは、MPMoviePlayerController を使用してストリーミング ムービーを再生し、オーディオを同時に記録します。
これは iPhone で 100% 完璧に動作します。
ただし、クライアントの iPad では 100% 失敗します。 ログには、AudioSession が単にアクティブ化を拒否している !act エラーが表示されます。そして、私が彼から受け取ったすべてのログ ファイルには、コールバック関数に返される多数の中断とルートの変更 (つまり、カテゴリ) が含まれています。**iPhone では、このようなものはまったく表示されません。ログは、レコードが作成され、指定されたファイルに記録されたことのみを示しています。中断もルート変更もナンセンスもありません。
関連するログは次のとおりです。
両方のコールバック関数をスタブ化して、中断の発生とルートの変更を (理由と共に) 記録するだけにしました。文字通り何もしないので、わざわざコードを投稿するつもりはありません。ただし、iPad で記録を開始しようとすると、これらのログが何度も表示されます。
Apple DevフォーラムとStackOverflowで見つけることができるほぼすべての投稿を読みましたが、同じ問題を抱えている人や、iPadの動作の違いを説明するApple Docsの関連するメモを見つけることができないようです. -- 注: iPad には、不一致の Begin Interruption 呼び出しが終了しないなど、修正された他の欠陥のある動作がいくつか表示されました (そのため、セッションを非アクティブ化することはありませんでした)。
AudioQueue または AudioSession コードからの初期化またはアクティベーションの呼び出しが失敗したことを示すログを受け取りません。録音を開始しようとすると、単に失敗します。-- AudioSessionSetActive(true); を強制しようとさえしました。サウンド システムを使用しようとするたびに呼び出しを行っても、これらのエラーが引き続き発生します。
初期化呼び出しに関連するコードは次のとおりです。
後でビデオの loadstate コールバックで、あらかじめ決められたファイルパスへの記録を開始しようとします。
そして、オーディオ録音は完全に失敗します。
お時間をいただきありがとうございます。
iphone - バックグラウンドで AVAudioPlayer を使用して音楽を再生するにはどうすればよいですか?
現在、AVAudioPlayer を使用してフォアグラウンドで音楽を再生していますが、ホーム ボタンを押すとアプリケーションがバックグラウンドになり、音楽が停止します。AVAudioSession のカテゴリを AVAudioSessionCategoryPlayback に設定し、アクティブに YES に設定しました。さらに、audio
Info.plist の UIBackgroundModes にキーを追加しました。
バックグラウンド ミュージックの再生を有効にするために他に必要なことはありますか?
iphone - iPhoneオーディオサウンドのルーティング
音を聞くと同時に再生するアプリがあります。デフォルトでは、サウンド出力はイヤホンを経由します。したがって、次のコードを使用して、スピーカーを介してルーティングします。
これは正常に機能します。でも今は、ヘッドホンや外部スピーカーを付けた状態で、ヘッドホンから音を流したいと思います。どうすればそれを達成できますか?
また、理想的には、他のすべてのサウンド(つまり、音楽など)は、アプリの起動時にミュートする必要があります。
ありがとう!
iphone - マルチタスクを考慮して、iOS で他のオーディオ再生を処理するにはどうすればよいですか?
Audio Session Cookbookには、「Checking if Other Audio is Playing During App Launch」に関するセクションがあります。
私は MonoTouch を使用しています (ただし、Objective-C の回答を自由に提供してください。API は同じです)、そのドキュメントのコードは次のようになります。
結果として、私のアプリが iPod の音楽を再生している状態で開始された場合、その iPod の音楽が再生され続け、ハードウェア オーディオ デコーダ (これは必要ありません) を使用できなくなります。アプリの起動時に iPod の音楽が再生されていない場合は、ハードウェア デコーダを使用できます。
次に、 の値を使用しotherAudioPlaying
て、自分の音楽の再生を開始するかどうかを決定できます。
マルチタスクをサポートしていない古いオペレーティング システムでも問題なく動作するようになりました。しかし、マルチタスクを使用すると、ユーザーはアプリを離れて (バックグラウンドで)、iPod で音楽の再生を開始し、アプリに再び入ることができます。その後、iPod の音楽が停止し、私の音楽が再び再生されます。
私が望んでいるのは、アプリケーションがフォアグラウンドに戻ったときに iPod の音楽を再生し続けることです。アプリケーションがバックグラウンドのときに自分の音楽が再生されていても (ハードウェアデコーダを使用していても)。
(逆に、アプリケーションがバックグラウンドで音楽が再生されていない場合、アプリケーションが戻ったときに音楽の再生を開始できるかどうかを検出したいと考えています)。
これどうやってするの?(そしてできれば、オーディオを突然切断することなく、通常発生する素敵なフェードアウトを維持します。)
編集: また、メイン スレッドからすべてのオーディオ作業を行っていることも指摘しておく必要があります。
ios4 - AudioQueueStart 失敗 -12985
ストリーミング音楽プレーヤーを作成しましたが、フォアグラウンドで正常に動作します。しかし、iOS4 のバックグラウンドでは、次の曲を自動的に再生しません。(リモコンは動作します) 理由はAudioQueueStart return -12985
。
私はすでにオーディオセッションをチェックしています。大丈夫です。AudioQueueStart
音楽の再生を開始するときに使用します。どのように削除できますAudioQueueStart
か?
AudioQueueStart
失敗の件名について、ウェブで回答を読みました。
確認すべきことの 1 つは、AudioSession が最初にアクティブになっていることです。私の場合、新しい曲を開始する前に、曲の変更間でセッションを非アクティブに設定していました。
AudioSessionSetActive(false);
この AudioQueueStart を削除すると、バックグラウンドから問題なく動作します。
iphone - MPMoviePlayerController と AVAudioPlayer のオーディオ ミキシングの不具合
iPhone 用のインタラクティブなストーリーブック タイプのアプリケーションを開発していますが、最近、デバイスでのオーディオ ミキシングに関するイライラするバグに遭遇しました。
まず、オーディオ セッションをセットアップします。カテゴリをAVAudioSessionCategoryAmbientに設定し、 AVAudioPlayerインスタンスを初期化して再生します。ここで、オーディオの再生中にバックグラウンドで、 MPMoviePlayerController を使用して再生するビデオをプリロードし、その後にprepareToPlayを呼び出します。このようにビデオをプリロードする理由は、かなり厳密なタイミングでキューに合わせてすぐに再生する必要があるためです。
この構成では、オーディオ/ムービーが正常に機能し、それらが混ざり合い、互いに干渉することはありません。ただし、この特定のオーディオ セッション カテゴリでは、デバイスがロックされている間はオーディオを再生し続けることができません。これは、私が本当に必要としている機能です。その結果、別のカテゴリを検討せざるを得なくなりました: AVAudioSessionCategoryPlayback。
Apple docs によると、デフォルトでは、このカテゴリは他のオーディオとのミキシングを許可していません。他のオーディオとのミキシングを有効にするために、関連するカテゴリをオーバーライドしています。
残念ながら、これでロック中の再生の問題は解決しますが、別の問題が発生します。ビデオが少し途切れてロードされると、AVAudioPlayerオーディオが一時的に中断されます。吃音は小さく、おそらく 1 秒未満ですが、ユーザー エクスペリエンスを混乱させるには十分です。AVAudioSessionCategoryAmbientを使用してビデオをプリロードできるようにするこの関連記事を読みましたが、残念ながら、同じアプローチは新しいカテゴリでは機能しないようです。
リターン コードに従って、オーディオ セッション カテゴリが正常に適用されます。このカテゴリでオーディオ ミキシングを有効にすることが、アンビエント カテゴリによって提供されるミキシング機能と同じではない理由を知っている人はいますか?