为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

视频播放器

2018-09-07 3页 doc 91KB 22阅读

用户头像

is_438014

暂无简介

举报
视频播放器 视频播放器 typedef struct { video_pos_struct bg; video_pos_struct speed; video_pos_struct speed_inc; video_pos_struct speed_dec; video_pos_struct volume; video_pos_struct volume_inc; video_pos_struct volume_dec;...
视频播放器
视频播放器 typedef struct { video_pos_struct bg; video_pos_struct speed; video_pos_struct speed_inc; video_pos_struct speed_dec; video_pos_struct volume; video_pos_struct volume_inc; video_pos_struct volume_dec; #ifdef __VDOPLY_VIDEO_NEW_SKINS__ video_pos_struct volume_progress_bar; video_pos_struct stop_play; #endif video_pos_struct timer; video_pos_struct timer_bg; video_pos_struct progress_fill; video_pos_struct progress_empty; video_pos_struct progress_inc; video_pos_struct progress_dec; } video_osd_vodply_full_panel_struct; 1、mmi_vdoply_entry_player_screen() ——>进入播放器函数 2、mmi_vdoply_entry_player_screen_from_file()​​ ———>从文件进入 3、mmi_vdoply_entry_player_screen_internal() ———> 4、mmi_vdoply_init_ui() ———>初始化工作 5、mmi_vdoply_enter_state() ———>状态 6、mmi_vdoply_fullscr_reset_osd_fade() ——>视频播放器边框渐变 7、static void mmi_vdoply_draw_fullscr_osd() ——>画界面上效果函数 { mmi_vdoply_draw_fullscr_softkey(); ​​——————> 软键(左、中、右) mmi_vdoply_draw_fullscr_panel_volume(); ——————> 音量 #ifdef __VDOPLY_VIDEO_NEW_SKINS__ mmi_vdoply_draw_fullscr_panel_stop(); ——————> 停止键 #endif mmi_vdoply_draw_fullscr_panel_speed(); ——————> 播放速率 mmi_vdoply_draw_fullscr_panel_timer(); ——————> 时间 mmi_vdoply_draw_fullscr_panel_progress(); ——————> 进度条 } INIT_TOUCH_FULL_OBJ(volume_progress_bar, VOLUME_PROGRESS_BAR); ——————> 触屏 mmi_vdoply_touch_scr_pen_down_hdlr(mmi_pen_point_struct pos) mmi_vdoply_touch_scr_pen_up_hdlr(mmi_pen_point_struct pos) mmi_vdoply_touch_scr_hit_test(S32 pos_x, S32 pos_y, vdoply_ui_touch_struct *touch_obj) 音量调节: 触摸点击或滑动音量条可以调节音量;在视频界面,当一个pen down 事件发生,mmi_vdoply_touch_scr_hit_test()函数会去,如果该点在音量条所在范围内,则会去做相应的响应。 音量级数逻辑上是有16级,我在这里是选择一个160个像素点长度做为音量的触屏区域,刚好10个像素点长度为一个音量级数,假设该区域的起始位置为x1,当一个触屏事件发生在该区域内,取其触屏点位置x2,用x2-x1,得到的值再除以10就得到音量的逻辑级数。(此处省略,见代码口述) 播放器界面背景以及按键浮动渐变过程: 背景图以及按键图都画在OSD层上,函数: gdi_layer_set_opacity(TRUE, (U8) g_vdoply_cntx.fullscr_osd_opacity);就是来设置该层的通透值,如果改变全局变量g_vdoply_cntx.fullscr_osd_opacity的值,这些图片在界面上看到效果不一样。 当在视频播放界面,一个触屏或者按键事件发生,则会唤醒OSD层,调用 mmi_vdoply_fullscr_reset_osd_fade()函数,此函数里面有个定时器,每隔一定时间调用mmi_vdoply_fullscr_osd_fade_cyclic()函数,在此函数里每隔一定时间会对全局变量g_vdoply_cntx.fullscr_osd_opacity的值进行改变,从而改变OSD的通透值,OSD层就会出现渐变效果。(此处省略,见代码口述) /* create full screen osd layer */ g_vdoply_cntx.osd_layer_buf_ptr= mmi_frm_scrmem_alloc_framebuffer(VDOPLY_OSD_BUFFER_SIZE); gdi_layer_create_double_using_outside_memory( 0, 0, UI_device_height, UI_device_width, &g_vdoply_cntx.osd_layer_handle, (PU8) g_vdoply_cntx.osd_layer_buf_ptr, (S32) (VDOPLY_OSD_BUFFER_SIZE)); gdi_layer_push_and_set_active(g_vdoply_cntx.osd_layer_handle); gdi_layer_set_opacity(TRUE, (U8) g_vdoply_cntx.fullscr_osd_opacity); ——————>设置该层的通透值 gdi_layer_set_source_key(TRUE, GDI_COLOR_TRANSPARENT); ——————> MTK图形系统中实现通透功能的函数,TRUE,示打开通透,第二个参数表示需要通透的颜色值。 gdi_layer_pop_and_restore_active();
/
本文档为【视频播放器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索