`
Leif_冬
  • 浏览: 47890 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

android 播放音頻的相關操作(One)

 
阅读更多

1.將String 路徑解析成Uri的方法:

public Uri queryUriforAudio(String path)
    {
        File file = new File(path);
        Log.i("TEST","-------->path: "+path);
        final String where = MediaStore.Audio.Media.DATA + "='"+file.getAbsolutePath()+"'";
        Cursor cursor = this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, where, null, null);
        if (cursor == null) {
            Log.d("uritest", "queryUriforAudio: uri为空 1");
            return null;
        }
        int id = -1;
        if (cursor != null) {
            cursor.moveToFirst();
            if (!cursor.isAfterLast()) {
                id = cursor.getInt(0);
            }
            cursor.close();
        }
        if(id==-1)
        {
            Log.d("uritest", "queryUriforAudio: uri为空 2");
            return null;
        }
        return Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, String.valueOf(id));
    }

 

2.播放音頻:

 /**
     * play default notification sound
     *
     * @return MediaPlayer object
     */
    @Override
    public void playNotificationSound() {
        uriMedia = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        ringMedia = RingtoneManager.getRingtone(context, uriMedia);
        ringMedia.play();
    }

    /**
     * play default ring sound
     *
     * @return MediaPlayer object
     */
    @Override
    public void playDefaultRingSound() {
        uriCallMedia = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
        ringCallMedia = RingtoneManager.getRingtone(context, uriCallMedia);
        ringCallMedia.play();
    }
    /**
     * play specific ring sound
     *
     * @return MediaPlayer object
     */
    @Override
    public void playRingSound(Uri ringtongUri,int duratoinMs) {
        cancelTimer();
        mTimer = new Timer();
        initialTimer(duratoinMs);
        mediaPlayer = new MediaPlayer();
        try {
            mediaPlayer.setDataSource(context,ringtongUri);
            mediaPlayer.prepare();
            mediaPlayer.setLooping(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        mediaPlayer.start();
        isPlaying = true;
    }
    /**
     * play default alarm sound
     *
     * @return MediaPlayer object
     */
    @Override
    public void playDefaultAlarmSound() {
        uriAlarmMedia = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
        ringAlarmMedia = RingtoneManager.getRingtone(context, uriAlarmMedia);
        ringAlarmMedia.play();
    }

    /**
     * play specific alarm sound
     *
     * @return MediaPlayer object
     */
    @Override
    public void playAlarmSound(Uri ringtongUri,int duratoinMs){
        cancelTimer();
        mTimer = new Timer();
        initialTimer(duratoinMs);
        mediaPlayer = new MediaPlayer();
        try {
            mediaPlayer.setDataSource(context,ringtongUri);
            mediaPlayer.prepare();
            mediaPlayer.setLooping(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        mediaPlayer.start();
    }
    /**
     * stop notification sound
     */
    @Override
    public void stopNotificationSound() {
        if (ringMedia != null) {
            ringMedia.stop();
        }
    }


    /**
     * stop ring sound
     */
    @Override
    public void stopDefaultRingSound() {
        if (ringCallMedia != null) {
            ringCallMedia.stop();
        }
    }

    /**
     * stop alarm sound
     */
    @Override
    public void stopDefaultAlarmSound() {
        if (ringAlarmMedia != null) {
            ringAlarmMedia.stop();
        }
    }

 

 

分享到:
评论

相关推荐

    Android代码-MusicLibrary-一个丰富的音频播放SDK

    一个丰富的音乐播放封装库,针对快速集成音频播放功能,你值得拥有。 中文文档 Features Easily play local and web audio. Implement audio services based on IPC, reduce app memory peaks, and avoid OOM. ...

    android driver.rar

    "android driver.rar"这个压缩包可能包含了关于Android驱动开发的相关资料,让我们来深入探讨一下Android驱动程序及其重要性。 一、Android驱动程序概述 Android驱动程序是Android操作系统的核心组成部分,它们负责...

    Android打开各种格式文件

    对于.mp3、.wav等音频文件,`MediaPlayer`类是基本的播放工具。对于.mp4、.avi等视频文件,可以使用`MediaPlayer`或`ExoPlayer`。`MediaMetadataRetriever`可以提取音频和视频的元数据。 6. **文档处理** 对于....

    Clock for Android

    至于压缩包中的"Clock"文件,这可能是应用的APK安装文件或者相关资源文件,包含应用的代码、图片、音频等组成部分。如果需要进一步了解或修改应用,可能需要对这些文件进行解压和分析,但这通常需要一定的编程和技术...

    Driver_All_In_One_MT6575_Android4.0

    它集成了强大的ARM Cortex-A9处理器,支持最新的Android版本,并具有丰富的多媒体功能。 ### 构建系统 构建系统部分详细介绍了如何为MT6575平台搭建开发环境,包括编译内核、应用程序和其他必要的组件。这通常涉及...

    Android Application Development All-in-One For Dummies

    - **多媒体处理**:包括音频和视频的播放、录制及编辑技术,以及如何在应用中集成摄像头功能。 ##### 4. **性能优化与调试** - **性能分析工具**:教授如何使用Android Studio内置的工具来监控和优化应用性能,...

    Android MP3 视频转换器

    适合人群:本资源适用于具备一定的Android开发基础的开发者,特别是对音频处理和多媒体操作感兴趣的人群。学习收益:多媒体处理:通过本资源,您将学习如何在Android平台上处理音频和视频文件,了解多媒体文件的格式...

    android 熊猫文件管理器

    "Android熊猫文件管理器"是一款专为Android操作系统设计的高效、易用的文件管理应用。它提供了丰富的功能,帮助用户轻松地浏览、组织、管理和优化设备上的文件。通过这款文件管理器,用户可以深入理解Android系统的...

    android安卓文件管理器

    本文将深入探讨Android安卓文件管理器的相关知识点,包括其功能、操作方式以及如何优化文件管理体验。 1. 文件管理器的基本功能: - 浏览:文件管理器可以浏览设备内部存储、外部SD卡(如果支持)、下载目录以及...

    Android 来电拦截及拦截后的提示音源码.zip

    总的来说,Android来电拦截和提示音的源码分析涉及了Android的电话服务、事件监听、音频播放等多个核心模块。通过深入研究这些源码,开发者不仅可以了解Android系统的工作原理,还能学习如何定制和优化通话相关的...

    Android文件浏览器

    8. **媒体播放**:部分文件浏览器还内置了媒体播放器,可以直接在应用内播放音频和视频文件。 9. **主题和语言支持**:为了提升用户体验,文件浏览器往往提供多种主题和语言设置,以适应不同用户的偏好。 10. **...

    Android文件管理器源代码

    在Android系统中,文件管理器是一个非常重要的组件,它允许用户查看、操作和管理设备上的文件和目录。这个源代码提供了深入理解Android如何处理文件和目录的内部机制的机会。让我们一起探讨一下Android文件管理器...

    android的文件管理器

    本文将深入探讨基于Android实现的文件管理器的相关知识点,这对于Android开发人员来说是一个宝贵的资源。 首先,我们要了解Android的文件系统。Android采用Linux内核,因此其文件系统基于典型的Linux文件权限模型,...

    Driver_All_in_one_for_6737t.pdf

    此外,文档还涵盖了与Android AOSP系统集成相关的其他主题,包括系统构建(Build System)、项目克隆(Project Clone)、项目配置(Project Configuration)、EMI(嵌入式多媒体接口)、EMMC(嵌入式多媒体卡)配置...

    安卓Android源码——OnePieceGame.zip

    下面我们将深入探讨Android源码的相关知识点,以及在开发游戏时可能会涉及的技术。 1. **Android SDK**: Android应用程序的基础是Android Software Development Kit (SDK),它包含了开发者需要构建、调试和发布...

    android_device_oneplus_sdm845-common

    "eleven"可能代表Android版本,意味着这个项目包含了针对Android 11的设备配置和优化,以确保OnePlus SDM845设备在新操作系统版本下的兼容性和稳定性。 深入分析,我们可以推测这个项目可能包含以下关键组件: 1. ...

    Driver_All_in_One_V1.0_MT6735_6753.pdf

    这份文件标题为《Driver_All_in_One_V1.0_MT6735_6753.pdf》,这似乎是一份针对MT6735和MT6753平台的驱动程序集合的资料文件。文件的描述非常简单,只重复了标题。标签则直接指出是关于MT6735和6753的驱动程序。 ...

    PlayMode:Android切换音乐播放模式

    首先,Android的音乐播放功能主要依赖于`MediaPlayer`类,这是一个强大的音频、视频播放器接口。`MediaPlayer`提供了多种方法来控制音乐播放,包括播放、暂停、停止以及设置播放模式。 1. 单曲循环(Repeat One):...

    Android 4.4 SDK Reference 官方帮助文档

    6. **多媒体支持**: 包括音频、视频编码解码器的详细信息,以及如何使用`MediaPlayer`和`ExoPlayer`进行媒体播放。 7. **网络编程**: 提供了网络连接和数据同步的API,如`HttpURLConnection`和`Volley`库的使用。 ...

Global site tag (gtag.js) - Google Analytics