BiliBili-IJKPlayer播放器源码分析(一)
static JNINativeMethod g_methods[] = {{"_setDataSource","(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V",(void *) IjkMediaPlayer_setDataSourceAndHeaders},{ "_setDataSourceFd", "(I)V", (void *) IjkMediaPlayer_setDataSourceFd },{ "_setDataSource", "(Ltv/danmaku/ijk/media/player/misc/IMediaDataSource;)V", (void *)IjkMediaPlayer_setDataSourceCallback },{ "_setVideoSurface", "(Landroid/view/Surface;)V", (void *) IjkMediaPlayer_setVideoSurface },{ "_prepareAsync", "()V", (void *) IjkMediaPlayer_prepareAsync },{ "_start", "()V", (void *) IjkMediaPlayer_start },{ "_stop", "()V", (void *) IjkMediaPlayer_stop },{ "seekTo", "(J)V", (void *) IjkMediaPlayer_seekTo },{ "_pause", "()V", (void *) IjkMediaPlayer_pause },{ "isPlaying", "()Z", (void *) IjkMediaPlayer_isPlaying },{ "getCurrentPosition", "()J", (void *) IjkMediaPlayer_getCurrentPosition },{ "getDuration", "()J", (void *) IjkMediaPlayer_getDuration },{ "_release", "()V", (void *) IjkMediaPlayer_release },{ "_reset", "()V", (void *) IjkMediaPlayer_reset },{ "setVolume", "(FF)V", (void *) IjkMediaPlayer_setVolume },{ "getAudioSessionId", "()I", (void *) IjkMediaPlayer_getAudioSessionId },{ "native_init", "()V", (void *) IjkMediaPlayer_native_init },{ "native_setup", "(Ljava/lang/Object;)V", (void *) IjkMediaPlayer_native_setup },{ "native_finalize", "()V", (void *) IjkMediaPlayer_native_finalize },{ "_setOption", "(ILjava/lang/String;Ljava/lang/String;)V", (void *) IjkMediaPlayer_setOption },{ "_setOption", "(ILjava/lang/String;J)V", (void *) IjkMediaPlayer_setOptionLong },{ "_getColorFormatName", "(I)Ljava/lang/String;", (void *) IjkMediaPlayer_getColorFormatName },{ "_getVideoCodecInfo", "()Ljava/lang/String;", (void *) IjkMediaPlayer_getVideoCodecInfo },{ "_getAudioCodecInfo", "()Ljava/lang/String;", (void *) IjkMediaPlayer_getAudioCodecInfo },{ "_getMediaMeta", "()Landroid/os/Bundle;", (void *) IjkMediaPlayer_getMediaMeta },{ "_setLoopCount", "(I)V", (void *) IjkMediaPlayer_setLoopCount },{ "_getLoopCount", "()I", (void *) IjkMediaPlayer_getLoopCount },{ "_getPropertyFloat", "(IF)F", (void *) ijkMediaPlayer_getPropertyFloat },{ "_setPropertyFloat", "(IF)V", (void *) ijkMediaPlayer_setPropertyFloat },{ "_getPropertyLong", "(IJ)J", (void *) ijkMediaPlayer_getPropertyLong },{ "_setPropertyLong", "(IJ)V", (void *) ijkMediaPlayer_setPropertyLong },{ "_setStreamSelected", "(IZ)V", (void *) ijkMediaPlayer_setStreamSelected },{ "native_profileBegin", "(Ljava/lang/String;)V", (void *) IjkMediaPlayer_native_profileBegin },{ "native_profileEnd", "()V", (void *) IjkMediaPlayer_native_profileEnd },{ "native_setLogLevel", "(I)V", (void *) IjkMediaPlayer_native_setLogLevel },
};JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved)
{JNIEnv* env = NULL;g_jvm = vm;if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_4) != JNI_OK) {return -1;}assert(env != NULL);pthread_mutex_init(&g_clazz.mutex, NULL );// FindClass returns LocalReferenceIJK_FIND_JAVA_CLASS(env, g_clazz.clazz, JNI_CLASS_IJKPLAYER);(*env)->RegisterNatives(env, g_clazz.clazz, g_methods, NELEM(g_methods) );ijkmp_global_init();ijkmp_global_set_inject_callback(inject_callback);FFmpegApi_global_init(env);return JNI_VERSION_1_4;
}
BiliBili-IJKPlayer播放器源码分析(一)相关推荐
- 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇
https://www.cnblogs.com/harlanc/p/9693983.html 目录 OpenSL ES & AudioTrack 源码分析 创建播放器音频输出对象 配置并创建音 ...
- 一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇...
一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...
- 最新哔哩bilibili视频弹幕播放器源码+完整无错带后台/亲测
正文: 最新哔哩bilibili视频弹幕播放器源码+完整无错带后台/亲测,此款播放器源码添加及修复了很多功能,且所有源码均本地化,不存在外链的情况,测试环境:PHP7.0+MySQL5.6 播放器跨域 ...
- PHP哔哩哔哩bilibili视频弹幕播放器源码 带后台版本
简介: PHP哔哩哔哩bilibili视频弹幕播放器源码 带后台版本 此款播放器源码添加及修复了很多功能,且所有源码均本地化,不存在外链的情况. 环境:PHP7.0+MySQL5.6 优化修复功能: ...
- java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 本源码技 ...
- 超美响应式自适应引导页带音乐播放器源码
介绍: 超美响应式自适应引导页带音乐播放器源码,纯html源码,右键记事本修改即可~自带音乐播放器,自带自动打字特效,自带网站存活时间,自带随机ACG背景,自适应响应式网页 网盘下载地址: http: ...
- THOR:MindSpore 自研高阶优化器源码分析和实践应用
摘要:这篇文章跟大家分享下THOR的实践应用.THOR算法的部分内容当前已经在MindSpore中开源 本文分享自华为云社区<MindSpore 自研高阶优化器源码分析和实践应用>,原文作 ...
- html5 mp3播放器源码,HTML5自定义mp3播放器源码
audio对象 src兼容.ogg .wav .mp3 width autoplay loop muted静音 播放play() var myAudio = new Audio(); myAudio. ...
- 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误
正文: 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误,此款播放器源码添加及修复了很多功能,且所有源码均本地化,不存在外链的情况,测试环境:PHP7.0+MySQL5.6 安装教程: 1,访问/d ...
最新文章
- 各版本jdk下载地址
- 学习 git clone 几种不同的协议
- Spring Cloud——基于OpenFeign调用PaddleOCR的Restful API服务解决方案
- 【PAT甲级 约会】1061 Dating (20 分) C++ 全部AC
- Android_Kotlin 代码学习
- 字节跳动杯2018中国大学生程序设计竞赛-女生专场题解
- php替换图片_php实现图片上传并进行替换操作
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_3_综合案例_文件上传案例的服务器端...
- mongodb搭建和基本语法
- html状态栏透明,HTML – 如何使我的导航栏略微透明?
- unity 获得当前物体_unity 获取物体尺寸
- 《JAVA语言程序设计与数据结构》(基础篇)原书第11版 第一章(答案)
- ThinkPad R400 Windows7 驱动安装
- BackTrack5 下破解无线
- 智联+影音,AITO问界M7想干翻的不止理想One
- AR地图与虚拟现实技术
- Win10运行红色警戒2尤里的复仇联机技巧+防守地图
- 263企业邮箱imap服务器,263企业邮箱支持IMAP邮箱搬家功能
- c/c++ 洛谷 P1428 小鱼比可爱
- virt-install命令详解