首页 > 代码库 > 求教,是否直接可以调用android的libmedia.so库进行音频播放
求教,是否直接可以调用android的libmedia.so库进行音频播放
问题描述
问题: 在C++代码中是否可以调用android系统的libmedia.so, 我用C++写了一个测试程序,调用了libmedia.so中mediaplayer.cpp中的方法进行音频播放,可以通过编译,也可以在android系统的机顶盒中执行,但是prepare()方法一直被阻塞,求大神指点该如何解决啊,给点思路好吗?以下是测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <mediaplayer.h>
using namespace android;
int main()
{
int iRet = 0;
MediaPlayer *p= new MediaPlayer();
iRet = p->setDataSource("/data/j2me/phoneme-cache/061075.midi", NULL);
if (0 != iRet)
{
printf("[setDataSource] iRet = %d\n", iRet);
}
iRet = p->setAudioStreamType(3);
if (0 != iRet)
{
printf("[setAudioStreamType] iRet = %d\n", iRet);
}
iRet = p->prepare();
if (0 != iRet)
{
printf("[prepare] iRet = %d\n", iRet);
}
iRet = p->start();
if (0 != iRet)
{
printf("[start] iRet = %d\n", iRet);
}
p->stop();
return 0;
}
解决方案1
java层播放媒体的代码也有setDatasource. prepare.其对应 的流程你也看过了吧....
是不是权限或其它的问题?看下prepare函数,什么情况下会阻塞 啊
问题: 在C++代码中是否可以调用android系统的libmedia.so, 我用C++写了一个测试程序,调用了libmedia.so中mediaplayer.cpp中的方法进行音频播放,可以通过编译,也可以在android系统的机顶盒中执行,但是prepare()方法一直被阻塞,求大神指点该如何解决啊,给点思路好吗?以下是测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <mediaplayer.h>
using namespace android;
int main()
{
int iRet = 0;
MediaPlayer *p= new MediaPlayer();
iRet = p->setDataSource("/data/j2me/phoneme-cache/061075.midi", NULL);
if (0 != iRet)
{
printf("[setDataSource] iRet = %d\n", iRet);
}
iRet = p->setAudioStreamType(3);
if (0 != iRet)
{
printf("[setAudioStreamType] iRet = %d\n", iRet);
}
iRet = p->prepare();
if (0 != iRet)
{
printf("[prepare] iRet = %d\n", iRet);
}
iRet = p->start();
if (0 != iRet)
{
printf("[start] iRet = %d\n", iRet);
}
p->stop();
return 0;
}
解决方案1
java层播放媒体的代码也有setDatasource. prepare.其对应 的流程你也看过了吧....
是不是权限或其它的问题?看下prepare函数,什么情况下会阻塞 啊
求教,是否直接可以调用android的libmedia.so库进行音频播放
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。