1.android åºå±å¯ä»¥è°ç¨mediaplayer.hå
2.《MiniPRO H750开发指南》第五十一章 视频播放器实验
android åºå±å¯ä»¥è°ç¨mediaplayer.hå
ããå®æ¹æ¯æ²¡æå¨NDKéæä¾ä½¿ç¨mediaplayerçæ¥å£çï¼ä½å¦æä½ ä¸å®è¦è¿æ ·åï¼ä¹æ¯æå¯è½çï¼æ路就æ¯ï¼
ãã1ï¼ä»Androidæºç ä¸æ¾å°mediaplayer.h以ålibmediaplayer.soï¼åºååçæµåºè¯¥æ¯è¿æ ·ï¼
ãã2ï¼ç¨soæ¥çå·¥å ·ï¼å¾å°libmediaplayer.soéé¢çå½æ°æ¥å£
ãã3ï¼å¨èªå·±çNDKä¸include mediaplayer.hï¼è¿ä¸ªå¤´æ件å¯ä»¥copyå°èªå·±çå·¥ç¨æ¥ï¼ç¨dllopenå½æ°æå¼libmediaplayer.soè·åéé¢çæ¥å£ï¼åèandroidæºä»£ç 使ç¨mediaplayerææ¾é³è§é¢ã
ããæèªå·±ç¨è¿æ¤æ¹æ³å¨NDKä¸è°ç¨AudioTrackï¼ä¹æ¯java sdkéçä¸ä¸ªç±»ï¼æ¥ææ¾é³é¢ï¼ä½ä¹æ¯æ缺é·çï¼ä¸åçæ¬çAndroidï¼.hæ.soéçæ¥å£æå¯è½æååï¼æä»¥å ¼å®¹æ§åå¨é®é¢ï¼éè¦å¯¹ä¸åçæ¬çæ¥å£é½è¦æ£æµä¸éã
ããé¢å¤è¯ï¼å¨NDKéææ¾é³è§é¢æ£è§çåæ³ï¼æ¯è°ç¨NDKå®æ¹æä¾ç模åOpenSLæOpenALï¼å ·ä½è§NDKææ¡£åexample
《MiniPRO H开发指南》第五十一章 视频播放器实验
本章,我们将继续深入学习使用STMH自带的硬件JPEG解码器,用于播放MJPEG编码的AVI视频,实现一个简单的视频播放器。
在本章中,我们首先对AVI文件进行简介,表白网页弹窗源码AVI是音频视频交错的英文缩写,用于存储数字音频与视频数据,支持色和RLE压缩。AVI文件采用RIFF文件结构存储数据,构造结构包括数据块标记、大小和数据内容。AVI文件内部结构包含信息块、数据块和索引块,分别定义文件的通用信息、音视频序列数据和数据块索引,实现音频和视频的rxpi源码同步播放。
在AVI文件的解析中,我们关注RIFF和LIST块的结构,了解如何通过这些块获取音频和视频的数据流信息。信息块包含了文件的全局信息,如数据流数量、视频图像的宽度和高度等。数据块包含音视频序列数据,以标准类型码进行区分。East源码索引块为音视频数据块提供索引,记录偏移位置。
为了实现视频播放,我们需完成一系列步骤:初始化外设、读取AVI文件、解析关键信息、设置参数以及读取数据流开始解码。具体包括初始化RGB灯、Netflix源码串口、TFT LCD模块、按键、SD卡接口、硬件JPEG解码内核、定时器等资源。接着,读取AVI文件并解析,xHelper源码获取音频参数如编码方式、采样率、位数和流类型码,以及视频参数如编码方式、帧间隔、尺寸和流类型码。根据解析结果,设置SAI的音频采样率和位数,LCD的开窗位置,并开始读取数据流进行解码。
在程序设计部分,我们详细介绍了程序流程图和主要函数的解析。重点在于解析AVI文件以获取音视频流信息,查找ID以进行数据流查找和快进快退操作,初始化和释放MJPEG解码器,解码JPEG,以及播放MJPEG编码的AVI视频文件。
APP驱动代码包括核心代码的讲解,源码分为videoplayer.c和videoplayer.h文件。播放MJPEG编码的AVI视频文件的函数通过调用初始化、解码和播放步骤来实现,遵循之前介绍的流程。
最后,下载验证部分展示了如何使用狸窝全能视频转换器将通用视频转换为支持的MJPG编码的AVI文件,以及如何将转换后的文件拷贝到SD卡并插入开发板,进行视频播放的测试。在测试过程中,程序先检测字库更新,然后显示实验相关信息,查找并播放SD卡内符合要求的视频文件。用户可以使用按键控制视频的播放和选择,实现基本的视频播放功能。
总结,本章通过详细解析AVI文件结构、设计程序流程和验证实现,展示了如何在STMH开发板上实现视频播放器,充分发挥了STMH强大的处理能力和硬件JPEG解码器的性能。