我遇到了一个问题,我三天都解决不了,你是我最后的希望。
我的目标是用Bass.dll记录声音( iPhone有特殊版本的库,也有.net包装器的版本;可以在这里找到: un4seen.com)
在模拟器上,程序工作(或似乎工作正常)。但是当我试图在iPhone上运行它时-我得到了这个错误:
“尝试JIT编译方法‘’(包装本机到托管) RecordingAudioHelloWorld.Player:recordingHandler (int,intptr,int,intptr)‘时只使用-aot。”
错误发生在这里:
RECORDPROC _recordingHandler = new RECORDPROC(recordingHandler);
_record = Bass.BASS_RecordStart(16000, 1, BASSFlag.BASS_SPEAKER_RIGHT, _recordingHandler, IntPtr.Zero); // <-- ERROR!!!
private int recordingHandler (int handle, IntPtr buffer, int length, IntPtr user)
{
//....
}当我在这里阅读时,我将Linker行为更改为"Link程序集“,但没有任何效果。
我能用它做点什么吗?
发布于 2012-09-10 06:07:07
尝试将MonoPInvokeCallback属性添加到recordingHandler函数中。请注意,您还需要使函数保持静态。YourDelegateType应该是您在C#中定义的与此方法的签名相对应的委托类型。
[MonoPInvokeCallback (typeof(YourDelegateType)]
private static int recordingHandler (int handle, IntPtr buffer, int length, IntPtr user)
{
// ...
}https://stackoverflow.com/questions/12340113
复制相似问题