portaudio:如何播放刚刚结束的新音频

时间:2013-10-14 20:50:33

标签: c audio portaudio

我正在尝试播放另一个新音频。 情况是这样的:

我播放一个正弦波并等到它停止 - 直到回调返回PaComplete。在那之后,我等待兰德时间,然后播放新浪潮 - 这是教程中的伪代码:

    err = Pa_OpenDefaultStream( &stream,
               0, /* no input channels */
               2, /* stereo output */
               paFloat32, /* 32 bit floating point output */
               SAMPLE_RATE,
               256, /* frames per buffer */
               patestCallback,
               &data );
    if( err != paNoError ) goto error;

    err = Pa_StartStream( stream );
    if( err != paNoError ) goto error;

    while( Pa_Active() );

    err = Pa_StopStream( stream );
    if( err != paNoError ) goto error;
    err = Pa_CloseStream( stream );
    if( err != paNoError ) goto error;

    err = Pa_OpenDefaultStream( &stream,
               0, /* no input channels */
               2, /* stereo output */
               paFloat32, /* 32 bit floating point output */
               SAMPLE_RATE,
               256, /* frames per buffer */
               patestCallback,
               &data );
    if( err != paNoError ) goto error;

    err = Pa_StartStream( stream );
    if( err != paNoError ) goto error;

    while( Pa_Active() );

    err = Pa_StopStream( stream );
    if( err != paNoError ) goto error;
    err = Pa_CloseStream( stream );
    if( err != paNoError ) goto error;

正如您所看到的,我只是复制了代码,但是当我尝试播放时,没有为第二个波生成声音,并且,如果我调用Pa_getErrorText,它总是会显示“成功”。 任何人都可以帮助我。

PS。这是带有复制代码的锯齿教程。我使用的波浪是不同的。

0 个答案:

没有答案