如何在Android的模拟器中集成别人写好的媒体播放插件?? 比如别人只给了我一个.so文件,说是支持在模拟器的MediaPlay播放wav文件的,请问我如何操作这个文件,就可以让Android模拟器的MediaPlayer可以播放wav文件,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.首先在android工程的root目录下新建/libs/armeabi/目录,然后把相应的so文件拷贝到这个目录下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中搜一下 google IO 有个 Mastering android media framework, 蛮好的。前提是要能看到youtube. 在.mk中加local_libary = 库名字,然后在jni层可以使用库中的接口,把用到的函数封装一下交个java使用。这样用应该可以 就像liblog.so , 在.mk中加LOCAL_LIBARY += log ,这样就可以使用log库中的函数了 static const CodecInfo kDecoderInfo[] 在OmxCodec.cpp中,这个结构体中加上一条,但是还得需要有一个WAV的Extractor,否则也不能正确去解析WAV格式的。。 不好意思,我是从WinCE转过来学Android的,刚用Android的媒体播放框架,我的意思就是我的多媒体解码插件是别人写好的,我只需要集成进我的系统就行了.在WinCE下对应的说法就是DirectShow的过滤器,过滤器本身是别人写的,我拿到后只需要注册到系统中即可,在WinCE下过滤器的注册是通过配置注册表来完成的.我要问的是Android的插件(就是对应WinCE下的过滤器)是否有个注册的过程或说法,我其实关心的就是这个配置过程,我不关心媒体播放器本身是怎么写的. 这个例子你可以去网上搜下系统集成第三方这里有个例子不知道符不符合要求:http://my.unix-center.net/~Simon_fu/?p=1020 android的多媒体编解码插件的集成分软编解码跟硬编解码,集成软编解码是在OMXCodec.cpp当中做的,硬编解码是通过OPEN MAX,按照你的描述应该是软解码,请参照我的前一个回复。OMXCodec.cpp当中有个数组,描述的是MIMETYPE跟codec之间的关系,你可以参考下现存的是怎么写的。 /libs/armeabi最好使用STAGEFRIGHT的框架来写播放器,使用标准的mediaplyaer类,如果要怎家新的格式就给Stagefright怎么新的extractor和解码器的插件 1.首先爱你android是支持wav格式播放的,请看DataSource::RegisterDefaultSniffers()函数中已经注册了wav的解析:RegisterSniffer(SniffWAV);2.如果不支持,就参考DataSource::RegisterDefaultSniffers()函数中注册高通扩展的媒体格式的方式引用别人提供的so库,注册一个wav的sniffer。 请问android平台下开发软件需要学习哪些知识 清除其他应用通知栏信息 缩放父控件,子控件不能随着父控件的缩放而缩放 菜鸟求助,安卓贪吃蛇实例运行报错!! 【求助】一个数据库更新失败的问题 Android获取地理位置的程序 忽然冒出的想法 为什么总说我这个intent方法有错呢 android listview问题 Android实现自动登录 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。