这里用到了ibinder机制。mPlayer 是在 MediaPlayerService调用create创建的sp<IMediaPlayer> MediaPlayerService::create返回值 是 sp<Client>
你应该查看 MediaPlayerService里面的 Client类。通过查看代码可知status_t MediaPlayerService::Client::setVolume(float leftVolume, float rightVolume)
{
LOGV("[%d] setVolume(%f, %f)", mConnId, leftVolume, rightVolume);
// TODO: for hardware output, call player instead
Mutex::Autolock l(mLock);
if (mAudioOutput != 0) mAudioOutput->setVolume(leftVolume, rightVolume);
return NO_ERROR;
}调用 mAudioOutput服务的api
你应该查看 MediaPlayerService里面的 Client类。通过查看代码可知status_t MediaPlayerService::Client::setVolume(float leftVolume, float rightVolume)
{
LOGV("[%d] setVolume(%f, %f)", mConnId, leftVolume, rightVolume);
// TODO: for hardware output, call player instead
Mutex::Autolock l(mLock);
if (mAudioOutput != 0) mAudioOutput->setVolume(leftVolume, rightVolume);
return NO_ERROR;
}调用 mAudioOutput服务的api
解决方案 »
- Notification切换语言的bug是android平台bug吗?
- 如何实现几个补间动画
- android中用Socket协议上传文件时出现SocketException:Permission denied
- select * from sqlite_sequence;这一句在sqllite里面能执行?
- 如何在andriod应用层获取一个比屏幕长宽都大的坐标值?
- btnStartAty1.setonclicklistener为何提示错误:setonclicklistener cannot be resolved or i
- android当内存数据很大的时候,如何能优化内存,提高运行速度
- handler获取到了子线程的值,怎么把这个值给json解析然后赋值给adapter,求大神帮忙。。贴图,难了几天。。。。。
- fragment中通过intent调用相机拍照出现的问题
- 搭建Android开发环境时,双击eclipse.exe时出错,日志文件看不懂啊,,求助大佬
- android应用程序如何实现开进自动运行,而不要先进入桌面再自动运行?
- 急, 求,微信、搜狐新闻等客户端离线消息是如何做的
在客户端MediaPlayer里面,mPlayer只相当于一个播放的接口,不用具体的解码类,
它对应MediaPlayerService里的client类。然后client里才具体去创建createPlayer,对应你的AwesomePlayer
this, pid, connId, client, audioSessionId,
IPCThreadState::self()->getCallingUid());player指向的是mediaPlayerService::Client对象,但定义的player类型是sp<IMediaPlayer>,那player到底是哪种类型,真是晕了
this, pid, connId, client, audioSessionId,
IPCThreadState::self()->getCallingUid());player指向的是mediaPlayerService::Client对象,但定义的player类型是sp<IMediaPlayer>,那player到底是哪种类型,真是晕了是个强指针