
音视频
文章平均质量分 92
hunter800421
这个作者很懒,什么都没留下…
展开
-
iOS播放/渲染/解析MIDI
什么是MIDIMIDI:乐器数字接口, Musical Instrument Digital Interface。MIDI 是计算机能理解的乐谱,计算机和电子乐器都可以处理的乐器格式。MIDI 不是音频信号,不包含 pcm buffer。通过音序器 sequencer,结合音频数据 / 乐器 ,播放 MIDI Event 数据( 通过音色库 SoundFont,播放乐器的声音。iOS上一般称sound bank )。通过 AVAudioEngine/AVAudioSequencer 播放连接原创 2022-05-19 12:30:53 · 1601 阅读 · 0 评论 -
【Android】AudioRecord::getMinBufferSize源码分析
Android,音频,AudioRecord原创 2022-05-07 17:05:43 · 1284 阅读 · 0 评论 -
Android多媒体框架(1)——MediaCodec.java源代码分析
概述MediaCodec勇于访问底层的编解码器,是Android底层多媒体支持框架的一部分。它可以操作三种数据:压缩后的,原始的音频数据,以及原始的视频数据。MediaCodec以异步的方式处理数据,会用到一组输入和输出缓冲区,后文会详细介绍。MediaCodec有内部类BufferInfo来描述缓冲区。BufferInfo的代码如下:public final static class B...原创 2019-01-12 22:02:22 · 3450 阅读 · 0 评论 -
Android 多媒体框架(2)—— android_media_MediaCodec.cpp源码分析
android_media_MediaCodec.cpp源码分析这里我们来分析和MediaCodec.java对应的native层类:android_media_MediaCodec.cpp的源代码。在该类的最后,我们会看到这样的代码:static const JNINativeMethod gMethods[] = {1881 { "native_release", "()V", ...原创 2019-01-31 18:05:58 · 2363 阅读 · 0 评论 -
Android多媒体框架(4)—— AMessage,AHandler和ALooper源码分析
AMessage源码分析AMessage继承自RefBase类,它有AHandler和ALooper的成员mHandler和mLooper,并且ALooper还是它的友元。成员变量mWhat是消息id,成员变量mTarget指明消息的handler(只用于调试)。成员函数setWhat和setTarget分别设置这两个属性。void AMessage::setWhat(uint32_t wha...原创 2019-02-04 13:59:09 · 6418 阅读 · 0 评论 -
Android多媒体框架(5)—— MediaMuxer.jara源码分析
MediaMuxer.jara源码分析音视频通过Codec(编码器)编码之后,还需要经过MediaMuxer(混合器)“混合”。混合器在framework的实现就是MediaMuxer类。MediaMuxer中又个内部类OutputFormat:public static final class OutputFormat {80 /* Do not change these v...原创 2019-02-07 17:38:42 · 2971 阅读 · 0 评论 -
Android多媒体框架(6)—— MediaMuxer的jni代码分析
MediaMuxer的jni代码分析jni方法的定义MediaMuxer jni方法的定义在frameworks/base/media/jni/android_media_MediaMuxer.cpp中。static const JNINativeMethod gMethods[] = { { "nativeAddTrack", "(J[Ljava/lang/String;[Lja...原创 2019-02-08 14:25:55 · 1397 阅读 · 0 评论 -
Android多媒体框架(7)—— stagefright中MediaMuxer源码分析
stagefright中MediaMuxer源码分析私有属性定义MediaMuxer.h中定义了一些类的属性:const OutputFormat mFormat; sp<MediaWriter> mWriter; Vector< sp<MediaAdapter> > mTrackList; // Each track has its...原创 2019-02-08 15:33:35 · 834 阅读 · 0 评论