`
dingran
  • 浏览: 376163 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android MediaPlayer研究问题

阅读更多

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-mediaplayer_android源码_

    在Android平台上,多媒体播放是应用开发中的重要组成部分。Android提供了内置的`MediaPlayer`类,用于处理音频、视频的播放任务。本示例源代码着重解析`...因此,深入研究Android源码对于提升Android开发技能至关重要。

    安卓Android源码——(MediaPlayer音乐).rar

    这个`Android源码——(MediaPlayer音乐).rar`压缩包很可能是为了详细讲解如何使用`MediaPlayer`类来实现音乐播放功能。在这个压缩包中,我们可能会看到一系列的示例代码、注释和教程,帮助开发者深入理解`...

    Android开发MediaPlayer示波器、均衡、重低音和音场实例

    在Android开发中,`MediaPlayer` 是一个非常重要的组件,它允许开发者播放音频和视频文件。...通过研究和实践这个实例,你可以掌握如何在Android应用中实现高质量的媒体播放功能,提升用户的娱乐体验。

    Android应用开发mediaplayer播放功能

    在Android应用开发中,MediaPlayer是系统提供的一个核心组件,用于播放音频和视频文件。这个"Android应用开发mediaplayer播放功能"的示例项目旨在帮助初学者理解如何使用MediaPlayer类来实现基本的媒体播放功能,如...

    android rtsp播放DEMO

    在Android平台上,RTSP(Real-Time Streaming Protocol)是一种广泛用于实时流媒体的协议,它允许设备从服务器获取音频、视频...通过深入研究DEMO代码,你可以掌握更多关于Android多媒体播放和RTSP协议的实际应用知识。

    Android开发 多媒体开发之MediaPlayer源码

    MediaPlayer类是Android SDK提供的一种核心组件,用于播放音频和视频文件。本篇文章将深入探讨Android多媒体开发中的MediaPlayer源码,帮助开发者理解其工作原理并优化应用性能。 MediaPlayer是Android系统提供的一...

    Android的MediaPlayer架构介绍.pdf

    【Android的MediaPlayer架构介绍】 Android系统的MediaPlayer组件是一个关键的多媒体处理模块,负责音频和视频的播放功能。...对于学习和研究Android多媒体处理的开发者来说,理解这个架构至关重要。

    mediaplayer

    【mediaplayer】是Android平台上的多媒体播放器组件,它为开发者提供了强大的功能,使得在移动设备上播放音频和视频变得简单。这个“mediaplayer”demo是一个优秀的学习资源,适合初学者入门,帮助理解如何在Android...

    Android项目源码Nature音乐播放器

    - **MediaPlayer API**:Nature音乐播放器使用了Android自带的MediaPlayer类来播放音频文件。这个API支持多种音频格式,如MP3、AAC等,并提供了播放、暂停、停止、快进、后退等基本控制。 - **AudioFocus**:为了...

    MediaPlayer源码

    通过研究`MediaPlayer`的源码,开发者可以更深入地理解其工作原理,优化媒体播放性能,解决特定场景下的问题,提升应用质量。对于一个Android开发者来说,熟练掌握`MediaPlayer`的使用是必不可少的技能。

    Android RTSP播放器源码.rar

    在Android平台上,RTSP(Real-Time Streaming Protocol)是一种广泛用于实时流媒体的协议,它允许设备从服务器获取音频、视频...同时,这也是一个很好的实践案例,可以用来研究Android多媒体框架和网络编程的最佳实践。

    MediaPlayer控件

    下载并研究这个文件,可以深入了解作者是如何实现上述功能的,对于学习和扩展自己的MediaPlayer控件能力大有裨益。如果有兴趣,你也可以根据自己的需求对其进行修改和优化,以适应特定的项目需求。同时,积极提出和...

    Android应用源码之(MediaPlayer音乐).zip

    在Android应用开发中,MediaPlayer类是用于播放音频和视频的核心组件。这个"Android应用源码之(MediaPlayer音乐)"的压缩包提供了一个示例,帮助开发者深入理解如何在Android应用程序中实现音乐播放功能。以下是对这...

    Java-MediaPlayer源码

    通过对Java-MediaPlayer源码的深入研究,开发者能够掌握其内部机制,解决实际开发中遇到的问题,如播放延迟、性能优化、自定义功能实现等。同时,理解源码也有助于学习其他类似库,比如Android的ExoPlayer,因为它们...

    Android 深入研究JNI详解

    ### Android深入研究JNI详解 #### 一、JNI与Android中的.so库载入 在深入了解JNI(Java Native Interface)之前,我们需要明确一点:Android应用程序的主要部分是基于Java开发的,并且这些Java类会被编译成Dex格式...

    MediaPlayer音频和视频使用

    下载并研究这个项目,可以帮助你更深入地理解如何在实际应用中结合使用`MediaPlayer`和`SurfaceView`,并解决可能出现的问题,如处理播放状态的同步、错误处理、音视频同步等。 总之,`MediaPlayer`和`SurfaceView`...

    SurfaceView + MediaPlayer 实现的视频播放器,支持横竖屏切换,手势快进快退.zip

    `MediaPlayer`是Android平台提供的媒体播放类,它可以处理音频和视频文件,支持网络流媒体和本地文件播放。使用`MediaPlayer`时,我们通常需要经历初始化、设置数据源、准备、播放、暂停、停止等步骤。在这个项目中...

    android音乐播放器(歌词同步、复读、快进、开机画面)

    Android的MediaPlayer提供了skipToNext()和skipToPrevious()方法,但它们用于切换歌曲,而非快进/快退。要实现快进,可以结合seekTo()方法,根据用户选择的时间增量来调整播放位置。考虑到播放流畅性,可能需要在...

    delphi xe 开发的播放器示例,Android

    这个示例可能是为了帮助初学者理解如何将多媒体功能整合到 Android 应用中,或者作为进阶开发者研究 Delphi Android 开发的起点。 标签 "android 播放器" 确定了应用的主要功能,即在 Android 设备上播放音乐。在 ...

Global site tag (gtag.js) - Google Analytics