使用C++, 通过libmediaplayer.so库直接进行音频播放,其他功能都没问题,可以播放出来,但是遇到一个问题,如下:libmediaplayer.so库中的多媒体接口大部分在mediaplayer.cpp中,这个文件中是MediaPlayer类的实现,我在C++代码中new了一个MediaPlayer对象,但是在delete的时候程序就挂掉了,现在找不到原因,请大家指点一下,不甚感谢
MediaPlayer *p = new MediaPlayer();
delete p;就仅仅写上面两句都会出错,请大家指点下是为什么啊

解决方案 »

  1.   

    是很奇怪,不过我更奇怪,你用C++调libmediaplayer.so库,介绍一下经验,干嘛要这么调用。
    直接用OLE不可以吗?
      

  2.   


    没用过OLE,我的这样做是因为需要移植一个JAVA虚拟机到android系统中,该虚拟机需要加入JSR135(音频)扩展,我将libmediaplayer.so库中的音频播放相关接口提取出来,以JNI的方式提供给JSR135, 所以说最终JSR135是通过调用了android框架的音频播放来实现的。我不太清楚你说用OLE是什么意思?能清楚介绍下么?
      

  3.   

    是不是其它还有地方在用这个 p

    没有,我直接写个测试main函数,里面就
    MediaPlayer *p = new MediaPlayer();
    delete p;
    这2句代码,还是挂掉。现在问题解决了,我new出对象后,直接交给SP管理,这样就没有问题了,但是还是搞不懂为什么直接delete会挂掉