开机动画和开机铃声不同步
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
开机时,开机铃声比开机动画晚了几秒。
原因可能是,在new MediaPlayer对象时,有get Battery status的操作,而batteryservice在稍后
的systEMServer进程的初始化才启动,所以导致new MediaPlayer对象的操作在此等待,导致铃声播
放延时。且对battery status统计code遍布整个branch,在此拿掉不会造成任何功能性的影响。
[SOLUTION]
可以同时删除以下code测试。
/php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks/av/media/libstagefright/MediaCodec.cpp
void MediaCodec::setState(State newState) {
updateBatteryStat(); //delete
/frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp
MediaPlayerService::MediaPlayerService()
{
//----------------------delete----------------------------------
const sp<IServiceManager> sm(defaultServiceManager());
if (sm != NULL) {
const String16 name("batterystats");
sp<IBatteryStats> batteryStats =
interface_cast<IBatteryStats>(sm->getService(name));
if (batteryStats != NULL) {
batteryStats->noteResetVideo();
batteryStats->noteResetAudio();
}
}
//----------delete-------------------
开机时,开机铃声比开机动画晚了几秒。
原因可能是,在new MediaPlayer对象时,有get Battery status的操作,而batteryservice在稍后
的systEMServer进程的初始化才启动,所以导致new MediaPlayer对象的操作在此等待,导致铃声播
放延时。且对battery status统计code遍布整个branch,在此拿掉不会造成任何功能性的影响。
[SOLUTION]
可以同时删除以下code测试。
/php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks/av/media/libstagefright/MediaCodec.cpp
void MediaCodec::setState(State newState) {
updateBatteryStat(); //delete
/frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp
MediaPlayerService::MediaPlayerService()
{
//----------------------delete----------------------------------
const sp<IServiceManager> sm(defaultServiceManager());
if (sm != NULL) {
const String16 name("batterystats");
sp<IBatteryStats> batteryStats =
interface_cast<IBatteryStats>(sm->getService(name));
if (batteryStats != NULL) {
batteryStats->noteResetVideo();
batteryStats->noteResetAudio();
}
}
//----------delete-------------------
开机动画播放几秒后开机铃声才开始播放,updateBatteryStat();删除无效,/frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp
MediaPlayerService::MediaPlayerService()没有这一块代码。请问是什么原因,谢谢。