Raspberry Pi 用の I2S サウンド ドライバーを作成しました。私はそれがうまくいくように見えます。alsa-aplay を使用すると音楽を再生でき、alsa-arecord を使用すると素晴らしいサウンドのサウンドを録音できます。
さて、問題は.. Raspberry Pi をソフトフォンとして使用する目的で、pjproject/pjsip を使用して単純なアプリケーションをクロスコンパイルしました。追加情報: 私は独自のカーネル (オングストローム ディストリビューション) と rootfs を Openembedded で構築し、PJproject も含めています。PJproject にはいくつかのテスト アプリケーションがあり、そのうちの 1 つ (pjsystest) は、サウンド ドライバーが正常に動作するかどうかを単純にテストするために使用しています。そして、そうではありません..
pjsysstest には、トーンの再生やオーディオの録音など、いくつかの異なるテスト オプションがありました。デバッグを通じて、トーン オプションの再生を開始すると、次のコールバックが呼び出されると結論付けることができます。- PCM 再生オープン - PCM 再生ハードウェア パラメータ - PCM 再生準備 - PCM 再生トリガー (開始) - PCM 再生トリガー (停止) - PCM 再生準備
aplay のみを使用: - PCM 再生オープン - PCM 再生 hw パラメータ - PCM 再生準備 - PCM 再生トリガー (開始) //ファイルが最後にある場合: - PCM 再生トリガー (停止) - PCM 再生 hw フリー - PCM 再生クローズ
pjsystest を使用してデバッグすると、いくつかの結果が得られます。ストリームを停止するためにトリガー コールバックが 2 回呼び出され、その後準備コールバックだけが呼び出される理由がわかりません (トリガー開始コールバックも呼び出されません)。そのため、曲の再生はありません (再生ストリームが既に停止されており、nog が再び開始されているため)。
さて、あなたが私の問題が何であるかを理解してくれることを願っています.誰かが私に答えや正しい方向への提案をしてくれることを願っています.
どうもありがとう!
[編集] それまでの間、私は他の PJproject サンプル アプリケーションをいくつか試しました: stereotest と auddemo です。それらは実際に機能しています:)それは良いです、これは(私が思うに): - カーネルとrootfsに問題はありません - ドライバに問題はありません。
問題は、なぜ PJSYSTEST が機能しないのかということです。トリガー開始を呼び出してから直接停止するのはなぜですか?
[/編集]