1

我有一些想要使用 PortAudio 打开流的 Visual C++ 代码(FireBreath)。完成所有初始操作后,我有以下代码:

err = Pa_OpenStream( &stream, &parametriIngresso, &parametriUscita, SAMPLE_RATE, FRAMES_PER_BUFFER, 0, My_Callback, &myData);
err = Pa_StartStream(stream);

while( ( err = Pa_IsStreamActive( stream ) ) == 1 )
    {
        Pa_Sleep(1000);
    }

err = Pa_CloseStream(stream);

这个函数是从 JavaScript 调用的,在一定的秒数后,插件崩溃了Error calling method on NPObject!,在 JavaScript 中调用它的那一行给我一个错误。

4

2 回答 2

0

在 NPObject 上调用方法时出错!是出现问题时在大多数当前浏览器上遇到的错误。您曾经能够从 NPAPI 插件(如 firebreath 插件)发送异常文本,但最近所有浏览器都已停止正确传递该异常文本。

无论如何,这样做的结果是,所有错误消息都可以肯定地告诉您,您的插件出了问题;如果插件实际上崩溃了,则错误消息“错误调用 NPObject 上的方法!” 与实际崩溃无关,而只是表示“我们试图在崩溃的插件上调用某些东西”。附加调试器并找出导致崩溃的原因,您将更接近找出实际发生的情况。

于 2011-11-16T17:50:37.307 回答
0

这是线程的问题。线程主体忙于插件的更多时间,并且由于 Javascript 是单线程的,它会崩溃。解决方案是创建新线程。

于 2011-11-25T15:05:25.890 回答