android播放系统默认的铃声

播放默认通知声音

/**
     * 播放系统默认提示音
     *
     * @return MediaPlayer对象
     *
     * @throws Exception
     */
    public void defaultMediaPlayer() throws Exception {
        Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        Ringtone r = RingtoneManager.getRingtone(mContext, notification);
        r.play();
    }

播放默认来电铃声

/**
     * 播放系统默认来电铃声
     *
     * @return MediaPlayer对象
     *
     * @throws Exception
     */
    public void defaultCallMediaPlayer() throws Exception {
        Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
        Ringtone r = RingtoneManager.getRingtone(mContext, notification);
        r.play();
    }
播放默认闹钟铃声
 /**
     * 播放系统默认闹钟铃声
     *
     * @return MediaPlayer对象
     *
     * @throws Exception
     */
    public void defaultAlarmMediaPlayer() throws Exception {
        Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
        Ringtone r = RingtoneManager.getRingtone(mContext, notification);
        r.play();
    }





  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C语言程序可以在安卓系统播放系统默认铃声: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <jni.h> // 安卓系统自带MediaPlayer类的引用 #include <android/native_activity.h> #include <android/asset_manager.h> #include <android/asset_manager_jni.h> void Java_com_example_nativeaudio_NativeAudio_createEngine(JNIEnv* env, jobject obj) { // 创建MediaPlayer对象 jclass MediaPlayerClass = (*env)->FindClass(env, "android/media/MediaPlayer"); jmethodID createMethod = (*env)->GetStaticMethodID(env, MediaPlayerClass, "create", "()Landroid/media/MediaPlayer;"); jobject mediaPlayerObj = (*env)->CallStaticObjectMethod(env, MediaPlayerClass, createMethod); // 设置铃声播放文件路径,可以是系统默认铃声路径 jmethodID setDataSourceMethod = (*env)->GetMethodID(env, MediaPlayerClass, "setDataSource", "(Ljava/lang/String;)V"); jstring ringtonePath = (*env)->NewStringUTF(env, "/system/media/audio/ringtones/Basic_tone.ogg"); // 系统默认铃声路径 (*env)->CallVoidMethod(env, mediaPlayerObj, setDataSourceMethod, ringtonePath); // 准备播放 jmethodID prepareMethod = (*env)->GetMethodID(env, MediaPlayerClass, "prepare", "()V"); (*env)->CallVoidMethod(env, mediaPlayerObj, prepareMethod); // 播放铃声 jmethodID startMethod = (*env)->GetMethodID(env, MediaPlayerClass, "start", "()V"); (*env)->CallVoidMethod(env, mediaPlayerObj, startMethod); } ``` 需要说明的是,该程序需要被封装在Java类中作为Native方法被调用,相关的Java类代码应该如下: ```java package com.example.nativeaudio; // 引入JNI相关的类库 import android.annotation.SuppressLint; import android.app.NativeActivity; import android.content.res.AssetManager; import android.os.Bundle; // 定义该NativeActivity类对应的C语言方法的接口 @SuppressLint("Registered") public class NativeAudio extends NativeActivity { static { // 加载C代码的Native库 System.loadLibrary("native-audio-jni"); } // 声明Native方法,该方法对应的C代码可以执行播放铃声的功能 public static native void createEngine(); } ``` 可以通过调用`NativeAudio.createEngine()`方法来启动播放默认铃声的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值