問題タブ [hfp]
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.
android - startBluetoothSco が呼び出された後、AudioTrack を使用してデバイスでオーディオを再生するためのコード フローは何ですか?
Android OS 4.1 を搭載したモバイル デバイスを Bluetooth デバイス (デバイス クラス = 1792) に接続し、BluetoothSco を使用してオーディオ (音声) をルーティングしています。createRfcommSocketToServiceRecord を使用して BluetoothSocket を正常にセットアップしました。
私の設定:
周波数 = 8000 で AudioRecord と AudioTrack を使用し、AudioRecord のソースとして MediaRecorder.AudioSource.MIC を使用し、AudioTrack の AudioManager.STREAM_VOICE_CALL を使用し、AudioManager モードの MODE_IN_COMMUNICATION と MODE_IN_CALL の両方を試します。
成功せずに。デバイスで音声が聞こえません。
私の質問:
- MODE_IN_COMMUNICATION または MODE_IN_CALL を使用する必要がありますか?
- デバイスでプレイするには、MODE_NORMAL またはその他のモードに切り替える必要がありますか?
- デバイスで SCO オーディオを再生するためのコード フローを提案できますか?
- 確認する作業コードを指摘していただけますか?
ノート:
- デバイスで「メディア オーディオ」プロファイル (A2DP) が無効になっています。「通話オーディオ」プロファイル (HFP) のみが有効になっています。
いくつかのコードを喜んで共有しますが、既存の SO Q&A を考えると、おそらく同じように見えます。
よろしく。
android - インフォテインメント デバイスを HFP クライアントとしてシミュレートする
ターゲット ボードで Android lollipop が実行されています。
ボードと電話はブルートゥースでペアリングされています。Android フォンに電話がかかってきた場合、電話に応答して拒否するためにボードでシミュレートするにはどうすればよいですか?
この時点で、電話に電話がかかってくると、HFP は正常に動作しています。
通話に応答して拒否するために Board UI でシミュレートしたいだけです。
ありがとう。
bluetooth - Bluez5.7 ヘッドセットはペアリングされていますが、HSP/HFP は接続されていません
Bluez5.7 ヘッドセット接続の問題を解決するためにあなたの助けが必要です.
目標は、WBS 互換ヘッドセットを使用して広帯域音声を実装することです。広帯域音声をサポートするには、HFP1.6 を統合する必要があることを理解しています。HFP 1.6 プロファイルをサポートするために、Bluez 5.7 (または 5.5.7) と Ofono 1.16、dBus v 1.4.16 を統合しました。
ホスト プロセッサは、UART (シグナリング用) および TDM (I2S/PCM インターフェイスのオーディオ データ用) を使用して BT チップにインターフェイスされます。
次のように hci インターフェースの電源を入れることができます。 noflow • hciconfig hci0 noauth • hciconfig hci0 up • hciconfig hci0 noauth
「hcitool scan」を使用してもスキャンは成功します</p>
「hcitool cc && hcitool auth 」を使用してもペアリングは成功します。</p>
接続には、Bluez5-7 /usr/lib/bluez/test/ で提供されている test-device スクリプトを使用しています
以下は、使用しているヘッドセットでサポートされている UUID です (これは bluetoothctl ツールを使用して確認しました)。
[bluetooth]# info 48:C1:AC:29:7F:27 Device 48:C1:AC:29:7F:27 Class: 0x240404 Icon: audio-card Paired: yes Trusted: yes Blocked: no Connected: no LegacyPairing:いいえ UUID: ヘッドセット (00001108-0000-1000-8000-00805f9b34fb) UUID: オーディオシンク (0000110b-0000-1000-8000-00805f9b34fb) UUID: A/V リモートコントロール (0000110e-0000-1000-8000-903UbID4f05)ハンズフリー (0000111e-0000-1000-8000-00805f9b34fb) UUID: PnP 情報 (00001200-0000-1000-8000-00805f9b34fb) モダリアス: bluetooth:v0055p001Bd0610
私が与えた場合: ./test-device connect 48:C1:AC:29:7F:27 "hsp"
BluezDaemon のコンテキストでは、
bluetoothd[523]: src/device.c:connect_profiles()
bluetoothd[523]: src/device.c:connect_profiles() /org/bluez/hci0/dev_48_C1_AC_29_7F_27 00001108-0000-1000-8000-00805f9b34fb、クライアント:1.6
次に、src/device.c:find_connectable_service() に移動します。
この関数で登録されたサービスを介してループします。(私はプリントを入れてこれを見ました)
Bluez には、audio-sink(0000110b-0000-1000-8000-00805f9b34fb) と A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) の 2 つのサービスが登録されています。
このサービス リストには、HFP または HSP が存在しないため、Connect 関数を実行せずに返されます。
そして、テストスクリプトを実行しているコンソールで、次のエラーが発生します。
助けてください !
bluetooth - A2DPによる音声出力とHFPによる音声入力を同時に使用できますか?
Bluetoothヘッドセットのマイクから音声を入力し、Bluetoothスピーカーに出力するアプリケーションを開発したいと考えています。
入力にHFP、出力にA2DPを使っていると思います。2 つのプロファイルを同時に使用できますか?
android - bluedroidでAndroid L以降のバージョンでHPFクライアントを使用するには?
HFP クライアントを実装しようとすると問題が発生します。通常、Android フォンは HFP ag ロールとして機能します。しかし、通常のヘッドセットなど、Android デバイスを HF の役割として機能させたいと考えています。Google が HFP クライアント コードを追加したようですが、作成できませんでした。これで、A2DP はシンクとして機能するため、うまく機能します。しかし、HFP を試してみると、両側で何も聞こえません。自動車プロジェクトは必要な機能を完成させなければなりませんが、そのソース コードが見つかりません。さらに、私のテスト デバイスは Android 5.0 を搭載した nexus 5 であり、必要に応じて ROM を変更できます。誰でも助けることができますか?abcステップを与えるだけです。どうもありがとう!
python - ofono dbus イントロスペクション: メソッドが見つかりません
ofono 1.17のドキュメントによると:
https://github.com/rilmodem/ofono/tree/master/doc
ハンズフリーには 2 つのインターフェイスがあります。
- org.ofono.Handsfree
- org.ofono.HandsfreeAudioManager
pulseaudio を機能させるには、それらにアクセスする必要があります。次のエラーが返されます。
E: [pulseaudio] backend-ofono.c: ofono でのハンズフリー オーディオ エージェントとしての登録に失敗しました: org.freedesktop.DBus.Error.UnknownMethod: インターフェイス "org.ofono.HandsfreeAudioManager" の署名 "oay" を持つメソッド "Register"存在しません
しかし、そのメソッドは存在し (上記のドキュメントによると)、その署名があります: object path, array{byte}.
したがって、存在しないというより、アクセスできないと思います。利用可能なサービスを一覧表示する簡単な Python スクリプトを作成すると、org.ofono がそこにあります。
次に、オブジェクトを一覧表示するコードを追加しました。
しかし、次のエラーが発生します。
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: 名前 'org.ofono.HandsfreeAudioManager' の所有者を取得できませんでした: そのような名前はありません
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: org.ofono.HandsfreeAudioManager という名前は、.service ファイルによって提供されませんでした
/etc/dbus-1/system.d/ofono.conf で、dbus のユーザー ポリシーも確認しました。
もちろん、ユーザー "user" として ofono と上記のコードを実行します。アイデアが不足しています... 問題を解決するには、さらに何をすればよいですか?
ios - iOS で HFP または A2DP が接続されているかどうかを検出するにはどうすればよいですか?
HFP デバイス経由で音楽を再生できるプロジェクトに取り組んでいます。しかし、音楽の再生中にHFPまたはA2DPが接続されているかどうかを検出したいという問題があります。
現在、これを行うために AVFoundation フレームワークを使用しています。コードは次のとおりです。
これはうまく機能しますが、別の問題が発生します。音楽の再生中に、この方法を使用して HFP 接続を検出すると、音楽の再生が約 2 秒間中断されます。
そこで、HFP接続を検出する効果を減らすことができる別の方法を試しました。フラグを使用しています
HFP または A2DP が接続されているかどうかを示します。以前の方法を使用して、接続を 1 回だけ検出し (アプリの起動時)、結果を isHFPConnectedFlag に保存します。さらに、接続ステータスを同期する AudioSessionRouteChange を観察します。
ルート変更理由が である場合HFP が接続されているか切断されているかを知ることができる場合AVAudioSessionRouteChangeReasonNewDeviceAvailable
。AVAudioSessionRouteChangeReasonOldDeviceUnavailable
残念ながら、iPhone に HFP を接続すると、システムはこの通知を送信しないため、この状況では接続を検出できません。
これを実装する理由またはより良い方法を知っている人はいますか (音楽の再生を中断せずに HFP 接続を検出する)?