1、功能说明
播放器解析库支持加密文件的说明
2、对接说明
2.1 涉及接口
AVFILE_API int APICALL AVFILE_FEOpenFile( const char *szFileName, int nChn, AVFILEPassword_S* pPwd, int nPwdNum, BOOL bCheckPwd, LONG_PTR* lpFileHandle)
2.2 密码结构体
typedef struct _tagAVFILEPassword_S
{
char szPwd[36]; //用户输入的密码
int nReserve;
}AVFILEPassword_S;
2.3 错误码定义
//1为S_FALSE,错误号必须从2递增
define AVFILE_ERR_PASSWORD 2 //密码错误
2.4 搜索和预览时
1.bCheckPwd:传FALSE,表示不检验密码
2.解析库应该要忽略密码,如果返回非0值,按格式不支持处理
3.如果不想返回数据,可以自行记录下未输入密码的标志,读帧时不返回数据即可(注:会导致无预览图片)
2.5 播放时
1.bCheckPwd:传TRUE,校验密码,加个for判断传入的pPwd密码,nPwdNum是密码数量(注:当前只支持1个密码)
2.密码不正确时,返回错误码 AVFILE_ERR_PASSWORD
3.会弹窗输入密码对话框,让用户修改密码
4.密码正确时,返回0,即可开始播放
双击文件播放时
↓
↓ bCheckPwd传TRUE,校验密码
↓ pPwd是密码,nPwdNum是密码数量(注:当前只支持1个密码)
↓
--->文件AVFILE_FEOpenFile
↑ ↓
↑ ↓
↑ ↓
↑ 文件是否加密 --->文件不加密 --->返回0,打开成功
↑ ↓
↑ ↓
↑ ↓
↑ 文件加密
↑ ↓
↑ ↓
↑ ↓
↑ 校验密码是否正确 -->密码正确 --->返回0,打开成功
↑ ↓
↑ ↓
↑ ↓
↑ 密码错误(返回AVFILE_ERR_PASSWORD)
↑ ↓
↑ ↓
↑ ↓
↑ 弹出密码输入窗口 ---->关闭密码框 --->打开失败
↑ ↓
↑ ↓
↑ ↓
<---输入密码并确定