我正在使用Raspberry Pi和PJSIP Softphone库,我有一个Raspberry,一切正常,一个总是抛出错误。声音设备是正确配置的USB耳机,意味着我可以通过aplay path/to/file
播放声音。
我刚刚通过按钮开始通话:
if ( button[1] ) {
digitalWrite( GPIO_LED_CALL3_AKTIVE, HIGH );
while ( GPIO_Read( GPIO_BTN_CALL3 ) );
dest_uri = pj_str( "sip:6001@" SIP_DOMAIN );
call_init = 1;
}
/* Initiate Call if call_init was set */
if ( call_init ) {
call_init = 0;
printf ( "\n============= Call to %s =============\n",dest_uri );
int status = pjsua_call_make_call( acc_id, &dest_uri, 0, NULL, NULL, NULL );
delay ( 1000 );
}
抛出的错误如下所示
Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1294
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1870
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1994
Expression 'SetApproximateSampleRate( pcm, hwParams, sr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1294
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1870
Expression 'PaAlsaStream_Configure( stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &inputLatency, &outputLatency, &hostBufferSizeMode )' failed in 'src/../../../portaudio/src/hostapi/alsa/pa_linux_alsa.c', line: 1994
我得到一个短暂的音频输出,在1或2秒后停止。
我按照以下内容构建了PJSIP:
sudo su
apt−get install build−essential automake autoconf libtool \
libasound2−dev libpulse−dev libssl−dev libsamplerate0−dev \
libcommoncpp2−dev libccrtp−dev libzrtpcpp−dev libdbus−1−dev \
libdbus−c++−dev libyaml−dev libpcre3-dev libgsm1−dev \
libspeex−dev libspeexdsp−dev libcelt−dev
cd /home/pi
wget http://www.pjsip.org/release/2.4.5/pjproject−2.4.5.tar.bz2
tar xvjf pjproject −2.4.5.tar.bz2
cd pjproject−2.4.5.tar.bz2
./configure && make dep && make
据我所知,它现在是一个编程错误,因为代码可以在一个设备上运行。那么是音频未命中配置还是构建错误的pjsip?也许我忘了包裹或某事?
如果您需要有关代码的更多信息,我可以为您提供更多信息。谢谢你的时间。
编辑:
我的播放方法如下:
static void ringback_start( pjsua_call_id call_id ) {
print_Debug_Info( "*** Starting ringback to out_call ***\n" );
pj_str_t fname = pj_str( "Sounds/Freizeichen3.wav" );
pjsua_player_create( &fname, 0, &cm.player_id );
pjsua_conf_connect( pjsua_player_get_conf_port( cm.player_id ), 0 );
}
static void ringback_stop( pjsua_call_id call_id ) {
print_Debug_Info( "*** Stopping ringback to out_call ***\n" );
pjsua_conf_disconnect( pjsua_player_get_conf_port( cm.player_id ), 0 );
pjsua_player_destroy( cm.player_id );
}
我有一种感觉,这可能会产生错误,因为我甚至在建立呼叫之前就会收到错误。