一、MadLib基本工作过程

本文详细介绍了MadLib解码mp3文件的工作流程,包括同步和异步方式的区别,以及Mad API的调用顺序,如mad_decoder_init(), mad_stream_buffer(), mad_decoder_run()和mad_decoder_finish()等。解码过程中,重点强调了input和output回调函数的作用,以及如何处理解码后的PCM数据。" 113078520,10292965,HTTP协议详解:RESTful API系列之基础概念与请求响应,"['HTTP协议', 'RESTful API', 'Web交互', '请求响应']
摘要由CSDN通过智能技术生成

1.1同步方式和异步方式

MadLib是以帧为单位解码mp3文件的,所谓同步方式是指解码函数在解码完一帧后才返回并带回出错信息,异步方式是指解码函数在调用后立即返回,通过消息传递解码状态信息。

1.2 Mad API 的调用顺序

1mad_decoder_init()decoder.h

Minimad.c中给出了一个函数调用过程的实例。首先定义一个mad_decoder变量(解码器对象),这时不需要对解码器对象进行任何初始化。调用mad_decoder_init()函数对刚才创建的decoder对象进行初始化,mad_decoder_init()函数定义于decoder.h头文件中。原型如下:

void mad_decoder_init(struct mad_decoder *, //解码器对象指针

void *,//自定义消息指针,这个值被复制进mad_decodercb_data成员

                    enum mad_flow (*)(void *, struct mad_stream *),//input回调函数

                    enum mad_flow (*)(void *, struct mad_header const *),//header回调函数

                    enum mad_flow (*)(void *,struct mad_stream const *,struct mad_frame *),//filter回调函数

                    enum mad_flow (*)(void *,struct mad_header const *,struct mad_pcm *),//output回调函数

                    enum mad_flow (*)(void *,struct mad_stream *,s

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值