android的sdk中MediaPlayer.java中的static代码段中:
static {
System.loadLibrary("media_jni");
native_init();
}
直接调用了static的nativee方法:
private static native final void native_init();
这个方法在jni的实现类,/myAndroid/frameworks/base/media/jni/android_media_MediaPlayer.cpp中,
static void
android_media_MediaPlayer_native_init(JNIEnv *env)
{
jclass clazz;
clazz = env->FindClass("android/media/MediaPlayer");
if (clazz == NULL) {
return;
}
fields.context = env->GetFieldID(clazz, "mNativeContext", "I");
if (fields.context == NULL) {
return;
}
fields.post_event = env->GetStaticMethodID(clazz, "postEventFromNative",
"(Ljava/lang/Object;IIILjava/lang/Object;)V");
if (fields.post_event == NULL) {
return;
}
fields.surface_texture = env->GetFieldID(clazz, "mNativeSurfaceTexture", "I");
if (fields.surface_texture == NULL) {
return;
}
}
这就奇怪了,少了个参数:jclass jazz
我动手试验过,如果是标准的javah生成的头文件,就应该有这个参数的,为什么这里没了呢?
初步猜测可能是使用register注册函数的时候,将这个函数绑定了。
这个函数里面确实也不需要jclass.
附件是我用来试验的Demo,仅供参考。
分享到:
相关推荐
在Android平台上,多媒体播放是应用开发中的重要组成部分。Android提供了内置的`MediaPlayer`类,用于处理音频、视频的播放任务。本示例源代码着重解析`...因此,深入研究Android源码对于提升Android开发技能至关重要。
这个`Android源码——(MediaPlayer音乐).rar`压缩包很可能是为了详细讲解如何使用`MediaPlayer`类来实现音乐播放功能。在这个压缩包中,我们可能会看到一系列的示例代码、注释和教程,帮助开发者深入理解`...
在Android开发中,`MediaPlayer` 是一个非常重要的组件,它允许开发者播放音频和视频文件。...通过研究和实践这个实例,你可以掌握如何在Android应用中实现高质量的媒体播放功能,提升用户的娱乐体验。
在Android应用开发中,MediaPlayer是系统提供的一个核心组件,用于播放音频和视频文件。这个"Android应用开发mediaplayer播放功能"的示例项目旨在帮助初学者理解如何使用MediaPlayer类来实现基本的媒体播放功能,如...
在Android平台上,RTSP(Real-Time Streaming Protocol)是一种广泛用于实时流媒体的协议,它允许设备从服务器获取音频、视频...通过深入研究DEMO代码,你可以掌握更多关于Android多媒体播放和RTSP协议的实际应用知识。
MediaPlayer类是Android SDK提供的一种核心组件,用于播放音频和视频文件。本篇文章将深入探讨Android多媒体开发中的MediaPlayer源码,帮助开发者理解其工作原理并优化应用性能。 MediaPlayer是Android系统提供的一...
【Android的MediaPlayer架构介绍】 Android系统的MediaPlayer组件是一个关键的多媒体处理模块,负责音频和视频的播放功能。...对于学习和研究Android多媒体处理的开发者来说,理解这个架构至关重要。
【mediaplayer】是Android平台上的多媒体播放器组件,它为开发者提供了强大的功能,使得在移动设备上播放音频和视频变得简单。这个“mediaplayer”demo是一个优秀的学习资源,适合初学者入门,帮助理解如何在Android...
- **MediaPlayer API**:Nature音乐播放器使用了Android自带的MediaPlayer类来播放音频文件。这个API支持多种音频格式,如MP3、AAC等,并提供了播放、暂停、停止、快进、后退等基本控制。 - **AudioFocus**:为了...
通过研究`MediaPlayer`的源码,开发者可以更深入地理解其工作原理,优化媒体播放性能,解决特定场景下的问题,提升应用质量。对于一个Android开发者来说,熟练掌握`MediaPlayer`的使用是必不可少的技能。
在Android平台上,RTSP(Real-Time Streaming Protocol)是一种广泛用于实时流媒体的协议,它允许设备从服务器获取音频、视频...同时,这也是一个很好的实践案例,可以用来研究Android多媒体框架和网络编程的最佳实践。
下载并研究这个文件,可以深入了解作者是如何实现上述功能的,对于学习和扩展自己的MediaPlayer控件能力大有裨益。如果有兴趣,你也可以根据自己的需求对其进行修改和优化,以适应特定的项目需求。同时,积极提出和...
在Android应用开发中,MediaPlayer类是用于播放音频和视频的核心组件。这个"Android应用源码之(MediaPlayer音乐)"的压缩包提供了一个示例,帮助开发者深入理解如何在Android应用程序中实现音乐播放功能。以下是对这...
通过对Java-MediaPlayer源码的深入研究,开发者能够掌握其内部机制,解决实际开发中遇到的问题,如播放延迟、性能优化、自定义功能实现等。同时,理解源码也有助于学习其他类似库,比如Android的ExoPlayer,因为它们...
### Android深入研究JNI详解 #### 一、JNI与Android中的.so库载入 在深入了解JNI(Java Native Interface)之前,我们需要明确一点:Android应用程序的主要部分是基于Java开发的,并且这些Java类会被编译成Dex格式...
下载并研究这个项目,可以帮助你更深入地理解如何在实际应用中结合使用`MediaPlayer`和`SurfaceView`,并解决可能出现的问题,如处理播放状态的同步、错误处理、音视频同步等。 总之,`MediaPlayer`和`SurfaceView`...
`MediaPlayer`是Android平台提供的媒体播放类,它可以处理音频和视频文件,支持网络流媒体和本地文件播放。使用`MediaPlayer`时,我们通常需要经历初始化、设置数据源、准备、播放、暂停、停止等步骤。在这个项目中...
Android的MediaPlayer提供了skipToNext()和skipToPrevious()方法,但它们用于切换歌曲,而非快进/快退。要实现快进,可以结合seekTo()方法,根据用户选择的时间增量来调整播放位置。考虑到播放流畅性,可能需要在...
这个示例可能是为了帮助初学者理解如何将多媒体功能整合到 Android 应用中,或者作为进阶开发者研究 Delphi Android 开发的起点。 标签 "android 播放器" 确定了应用的主要功能,即在 Android 设备上播放音乐。在 ...