立即注册
查看: 912|回复: 0

[MTK软件经验分享] FAQ-未知专辑封面显示错误

已绑定手机
已实名认证
发表于 2019-6-6 17:00:00 | 显示全部楼层 |阅读模式 来自 广东省深圳市
1、当A\B\C\D中4首歌中album字段均为“Unknownalbum”,且A有专辑封面,B\C\D均无封面,而在播放B\C\D时显示了A的封面而不是默认的封面。
[SOLUTION]
1、目前对应这个问题解决的思路是:
(1)总是直接根据当前歌曲路径直接去parse歌曲的cover信息。
(2)当(1)返回空的时候去DB中解析,plssrv会先判断是否为"Unknownalbum"的专辑,若是则返回,若不是继续按原来方式取值。
2、如下是具体的修改,请帮忙merge到贵司code中,然后帮忙check下是否oK(这边有测试已经OK),另外由于1(1)会消耗一定的memory,也请贵司知悉
-----------------------------------修改的code---仅仅为:plutommi---MEDIA_PLAYER_VER =
INTEGRATED_D--------------------------------1、
\plutommi\MTKApp\MediaPlayer\MediaPlayerInc\MediaPlayerGProt.h
(1)MediaPlayerGProt.h文件#include"meta_tag_api.h".
(2)
#ifdef__MMI_KURO_SUPPORT__
#defineMEPDLY_PLST_COMMON_APP_MEM_SIZE(25*1024)/*multipleplaylistappmemsize*/
#else
#defineMEPDLY_PLST_COMMON_APP_MEM_SIZE(8*1024+META_TAG_PARSE_MIN_SIZE)/*AAAAmultipleplaylistappmemsize+a
ddformetaparser*/
#endif
2、\plutommi\MtkApp\MediaPlayer\MediaPlayerSrc\MediaPlayerMainScreen.c
(1)
...
#defineMMI_MSCR_VOLUME_MAX_LEVELMDI_AUD_VOL_EX_MUTE_MAX
#defineMMI_MSCR_ARTWORK_SIZEMEDPLY_MAIN_SCREEN_ARTWORK_SIZE
#defineMETA_ERROR(x)(x*(-1)+(-220))//AAAA
...
(2)添加定义如下函数:
/*****************************************************************************
*FUNCTION
*mmi_medply_plst_get_current_artwork_for_filepath
*DESCRIPTION
*seekplaylistindex
*PARAMETERS
*index[IN]
*returnS
*void
*****************************************************************************/
S32mmi_medply_plst_get_current_artwork_for_filepath(void*buffer,U32buffer_size)
{
/*----------------------------------------------------------------*/
/*LocalVariables*/
/*----------------------------------------------------------------*/
S32ret=0;
PU8meta_parser_buffer=NULL;
U32meta_parser_hdlr=0;
U8meta_parser_ret=0;
U8meta_return_value=0;
meta_tag_img_info_struct*image_info_p=NULL;
/*----------------------------------------------------------------*/
/*CodeBody*/
/*----------------------------------------------------------------*/
meta_parser_buffer=kal_adm_alloc(g_medply.adm_id_p,META_TAG_PARSE_MIN_SIZE);
MMI_TRACE(MMI_MEDIA_TRC_G2_APP,MMI_TRC_MEDPLY_PLST_ALLOCATE_SCR_MEM,meta_parser_buffer,META_TAG_PARSE_MI
N_SIZE,__LINE__);
if(meta_parser_buffer==NULL)
{
MMI_TRACE(MMI_MEDIA_TRC_G2_APP,MMI_TRC_MEDPLY_LIST_GET_CURRENT_DETAILS,__LINE__);
ret=MEDPLY_PLST_ERR_NO_MEMORY;;
}
else
{
MMI_TRACE(MMI_MEDIA_TRC_G2_APP,MMI_TRC_MEDPLY_PLST_ASM_ALLOCATE,meta_parser_buffer,META_TAG_PARSE_MIN_SI
ZE,__LINE__);
meta_parser_ret=meta_parser_create(meta_parser_buffer,META_TAG_PARSE_MIN_SIZE,&meta_parser_hdlr);
if(meta_parser_ret>0&&meta_parser_ret<META_TAG_ERR_TOTAL)
{
MMI_TRACE(MMI_MEDIA_TRC_G2_APP,MMI_TRC_MEDPLY_LIST_GET_CURRENT_DETAILS_ERROR,meta_parser_hdlr,__LINE__);
ret=META_ERROR(meta_parser_ret);
}
else
{
meta_return_value=meta_parse_file(meta_parser_hdlr,(kal_uint16*)g_medply.filefullpath);
if(meta_return_value>0&&meta_return_value<META_TAG_ERR_TOTAL)
{
MMI_TRACE(MMI_MEDIA_TRC_G2_APP,MMI_TRC_MEDPLY_LIST_GET_CURRENT_DETAILS_ERROR,meta_return_value,__LINE__)
;
ret=META_ERROR(meta_return_value);
}
else
{
meta_get_attach_cover_info(meta_parser_hdlr,&image_info_p);
if(buffer_size<image_info_p->data_size||buffer_size==0)
{
ret=MEDPLY_PLST_ERR_NO_MEMORY;
}
else
{
/*Onlytrytogetartworkdatawhenitsavailableotherwisereturnerror*/
if(image_info_p->data_size>0&&
image_info_p->data_size<=MMI_MSCR_ARTWORK_SIZE&&
image_info_p->mime_type<META_TAG_IMG_TOTAL)
{
meta_return_value=meta_get_attach_cover_data(
meta_parser_hdlr,(kal_uint8*)buffer,buffer_size);
if(meta_return_value>0&&meta_return_value<META_TAG_ERR_TOTAL)
{
MMI_TRACE(MMI_MEDIA_TRC_G2_APP,MMI_TRC_MEDPLY_LIST_GET_CURRENT_DETAILS_ERROR,meta_return_value,__LINE__)
;
ret=META_ERROR(meta_return_value);
}
else
{
/*Noerrorupdatethesizeandmimitype*/
g_mscr_hd->meta_p->meta_data.artwork.mime_type=image_info_p->mime_type;
g_mscr_hd->meta_p->meta_data.artwork.size=image_info_p->data_size;
}
}
else
{
ret=MEDPLY_PLST_ERR_META_NO_INPUT;
}
}
}
meta_parser_release(meta_parser_hdlr);
}
kal_adm_free(g_medply.adm_id_p,meta_parser_buffer);
MMI_TRACE(MMI_MEDIA_TRC_G2_APP,MMI_TRC_MEDPLY_PLST_ASM_FREE,meta_parser_buffer,__LINE__);
meta_parser_buffer=NULL;
}
returnret;
}
(3)修改如下函数:
staticvoidmmi_mscr_prepare_meta(void)
{
。。。
#ifdef__MMI_MEDIA_PLAYER_PLST_DB_STYLE__
MMI_MSCR_MSG_TRACE(g_mscr_hd->meta_p->meta_data.artwork.size);
/*Firsttrytogetalbumartusingmetaapiiffailsgetfromplaylistservice*/
nRet=mmi_medply_plst_get_current_artwork_for_filepath(g_mscr_hd->artwork_mem,
g_mscr_hd->meta_p->meta_data.artwork.size);//AAAA
if(MEDPLY_PLST_NO_ERROR>nRet)//AAAA
{//AAAA
nRet=mmi_medply_plst_get_current_artwork_ex(g_mscr_hd->artwork_mem,
&g_mscr_hd->meta_p->meta_data.artwork.size);
}//AAAA
。。。
}
3、
游客,如果您要查看本帖隐藏内容请回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表