BiliBili-IJKPlayer播放器源码分析(一)
![](/assets/blank.gif)
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 ...
最新文章
- 行人检测与重识别!SOTA算法
- pom.xml设置mysql连接_maven工程配置pom.xml实现mybatis的访问数据库操作
- Kali Linux
- Java中如何实现线程的超时中断
- Windows Server 2016系统高级管理系列-DFS分布式文件系统
- ITIL小故事-谁动了他的红包
- 【转】C#中没有id 没有name C#怎么点击按钮
- requests 上传本地文件到服务器
- [BZOJ4653 区间]
- 实时采集Canal快速入门
- 在电脑上怎么做报表新手_初学者在电脑上如何制作电子表格
- 学习分析技术【02】--社交网络分析
- python图像识别教程pdf_如何使用Python进行PDF图片识别OCR
- docker-sync 加速 Laravel Sail 代码同步
- 数据防泄密系统,你了解多少呢?
- pnpm install出现:ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies
- 一、TF2 常用命令
- Excel导出模板加数据时,下拉框丢失解决方案
- 浅谈短视频背后的社会道德伦理问题(个人观点,仅供参考)
- html复选框美化插件,js和css3超酷checkbox复选框美化插件
热门文章
- java编程如何判断素数_Java判断素数
- 密码算法的概念及常用算法整理
- Android Studio 解决错误 Could not find method android() for arguments
- java comparator相等_Java Comparator thenComparingDouble()用法及代码示例
- Web安全攻防 渗透测试实战指南2
- 谷歌词霸2.0谁用谁知道
- Html5中的<section>标签的介绍
- 明年将突破2000亿元大关,中国母婴行业处在哪个阶段?企业如何应对“危”与“机”?...
- jsplumb拖线_jsPlumb插件做一个模仿viso的可拖拉流程图
- 从键盘输入正整数n,编程计算并输出1~n的和。