比如别人只给了我一个.so文件,说是支持在模拟器的MediaPlay播放wav文件的,请问我如何操作这个文件,就可以让Android模拟器的MediaPlayer可以播放wav文件,谢谢!
解决方案 »
- android系统蓝牙都用什么模块,有单独的android驱动吗?还是需要自己开发?
- 关于频繁更新UI,崩溃问题~~~~~
- Android调用.net webservice实现图片上传
- Android程序加密
- 想用animation来实现ImageView圆盘自转的效果,有些小问题。
- 如何监听ListView的当前滚动位置?比如listView滚动到最底边时
- 求一款android软件,江湖救急~~~~~急~~~~
- 关于在SDK加入jar包
- 百度地图 MapView类 的 removeView接口为何不好使 急救大神解救!
- 关于flutter listview组件出现无法滚动的问题,求助
- android下大家都用什么数据库框架?
- 求助
2.在java代码中加入static {
try {
System.loadLibrary(so文件名,如test.so的test);
} catch (Exception e) {
Log.e("JNI", e.toString());
}
}
3.使用java的native方法调用so文件中的本地方法(如public native int closeEngine(long pDEngine);),但前提是你必须知道这个so文件都有什么方法,(NDK/JNI)
4.然后你可以在代码中调用这个native方法去播放wav文件
官方的API demo中有一个hello-jni的例子,你可以去百度或者google中搜一下
这样用应该可以
在OmxCodec.cpp中,这个结构体中加上一条,
但是还得需要有一个WAV的Extractor,否则也不能正确去解析WAV格式的。。
在WinCE下对应的说法就是DirectShow的过滤器,过滤器本身是别人写的,我拿到后只需要注册到系统中即可,在WinCE下过滤器的注册是通过配置注册表来完成的.
我要问的是Android的插件(就是对应WinCE下的过滤器)是否有个注册的过程或说法,我其实关心的就是这个配置过程,我不关心媒体播放器本身是怎么写的.
这里有个例子不知道符不符合要求:http://my.unix-center.net/~Simon_fu/?p=1020
android的多媒体编解码插件的集成分软编解码跟硬编解码,集成软编解码是在OMXCodec.cpp当中做的,硬编解码是通过OPEN MAX,按照你的描述应该是软解码,请参照我的前一个回复。OMXCodec.cpp当中有个数组,描述的是MIMETYPE跟codec之间的关系,你可以参考下现存的是怎么写的。
就给Stagefright怎么新的extractor和解码器的插件
DataSource::RegisterDefaultSniffers()函数中已经注册了wav的解析:
RegisterSniffer(SniffWAV);
2.如果不支持,就参考DataSource::RegisterDefaultSniffers()函数中注册高通扩展的媒体格式的方式引用别人提供的so库,注册一个wav的sniffer。