`
Leif_冬
  • 浏览: 46689 次
  • 性别: 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的驱动程序。 ...

    Android 4.4 SDK Reference 官方帮助文档

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

    Audio Analyzer for Android

    The idea of the App consists of receiving the input feedback audio signal and compare it with the output audio signal that the same Android device is generating. The App is capable to form the ...

Global site tag (gtag.js) - Google Analytics