初识Android之音频播放

Android语言基础教程(187)Android多媒体应用播放音频与视频之使用MediaPlayer播放音频:让App会唱歌!Android多媒体开发之MediaPlayer全解析 本文深入解析Android MediaPlayer播放音频的全过程,从基础使用到高级技巧,涵盖本地资源、SD卡文件和网络音频的播放方法。通过完整示例代码,详解状态管理、错误处理和音频焦点等关键概念,帮助开发者快速掌握为App添加音频功能的实用技能。 阅读详情
随着手机的全面普及,手机的一些功能也随之普遍化,手机上最基本的多媒体需求就是播放音频文件,那么Android开发中如何实现这一功能呢,其实Android的Media Player很简单,易于使用。下面我将为大家提供一个简单的实例,实现音频的播放功能,这里处理的很简单,仅是简单地实现了其播放功能而已,随之深入学习,我们可以对其功能进行细致的完善。

  这里我们将分三步操作来实现,1、在工程的res目录下新建raw文件夹,将MP3文件放在项目的res/raw目录中。2、创建MediaPlayer的一个新实例并调用MediaPlayer.create()来引用MP3。3、调用MediaPlayer方法prepare()和start()。

具体代码如下:

创建一个MediaPlayerActivity,包结构为cn.com。

package cn.com;
import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MediaPlayerActivity extends Activity {
   
 private Button myButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myButton = (Button) findViewById(R.id.playsong);
        myButton.setOnClickListener(new Button.OnClickListener(){
        @Override
        public void onClick(View v) {
           // TODO Auto-generated method stub
           MediaPlayer mp = MediaPlayer.create(MediaPlayerActivity.this, R.raw.song1);//音频文件
           mp.start();
           mp.setOnCompletionListener(new OnCompletionListener(){
                   public void onCompletion(MediaPlayer arg0){
                   }
           });
         }
       });
    }
}

main.xml文件创建一个简单的播放Button-------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<Button
    android:id="@+id/playsong"
    android:layout_width="60dip"
 android:layout_height="wrap_content"
 android:text="play" />
</LinearLayout>
   以上是主要代码,其他代码没变,有两个地方说明一下:R.raw.song1为raw下的歌曲的路径,在R.java中有对应关系的,也可以使用URI访问网络上的文件或通过互联网访问文件。setOnCompletionListener方法是用于播放完时执行某项任务,我们可以通过更改按钮的状态或通知用户歌曲播放完毕,或者询问用户是否希望播放下一首歌曲。这里我没做处理。

 

  说明:我也是初学Android的Java爱好者,对Android的高深技术目前还并不是很清楚,只是为了记录自己的学习历程与学习心得,常常发表一些博文,然而对一些技术的说明可能并不是很到位,如果其中有什么纰漏或者不妥之处,愿闻大家指点交流,一起学习共同进步。

Day1 初识AndroidAudio ✅ 录制并保存PCM原始数据文件(可用Audacity导入验证)✅ 初步感知车载导航类音频的特殊处理逻辑。✅ 成功播放自定义生成的测试音频。 阅读详情

相关推荐

Android AudioFlinger(一)——初识AndroidAudio Flinger

AudioFlinger 是 Android 系统中的音频中间层(audio HAL, Audio Hardware Abstraction Layer)的一部分,负责管理音频的混音、播放和音量控制等功能。它充当 Android 应用程序和音频硬件之间的桥梁。

hirezy 1669

mediaPlayer.setOnCompletionListener不执行

mediaPlayer播放完成后不走回调,检查下是否设置了mediaPlayer.setLooping(true); 设置循环播放就不会走onCompletion回调。 下面是我的伪代码 private void playVideo() { //如果不为空释放在new if (mediaPlayer != null) { mediaPlaye...

caobin_study的博客 1万+

遇见你,很幸运——初识 Web Audio

注:本文使用的Web Audio API遵循W3C在18年9月发布的候选推荐版本,本文代码在Chrome76中测试通过,请注意代码兼容性。如有错误,请不吝指正。 引言 每段缘起始都很简单,或是擦肩而过的那阵清风,或是四目相对的那缕温情,亦是共经患难的那份情谊……初春的一天,在我被工作中出现的问题折磨的不堪之际,经朋友引荐,她出现在我的视野中。我忘不了她解决问题时的煞爽英姿,那干练的身影在我脑海中...

风萧萧梦潇的博客 2003

MediaPlayer音乐播放器、上一首、下一首、播放、停止、自动下一首、进度条

本文介绍MediaPlayer的使用。MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但定制性不如用MediaPlayer,要视情况选择了。MediaPlayer播放音频比较简单,但是要播放视频就需要SurfaceView。SurfaceView比普通的自定义View更有绘图上的优势,它支持完全...

Snoopyboy2597的博客 3325

Android AudioFlinger(三)—— AndroidAudio Flinger 之设备管理

AndroidAudio Flinger 之设备管理

hirezy 1584

全面安卓音乐播放器开发教程

Android SDK是开发Android应用所必需的软件开发工具包,它提供了一系列的工具和API来帮助开发者构建应用。SDK不仅包括了运行Android应用所必需的运行环境,还提供了用于调试和测试的工具。本章将简单介绍如何开始使用Android SDK,以及如何在项目中进行基础配置。实现Material Design风格的界面通常需要使用Android提供的支持库,如design等。这些库中包含了Material Design的各种组件和样式,开发者可以直接使用这些组件来快速实现界面。

weixin_35753291的博客 884

Android--MediaPlayer(实现列表选歌,上一首,下一首,清空播放列表,搜索本地音乐文件)

下载链接:http://download.youkuaiyun.com/detail/zlqqhs/5079025   MediaPlayerActivity类:   package com.vince.media; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.uti

zlQQhs(莫落)的专栏 3万+

全面解析Android音乐播放器开发

本文还有配套的精品资源,点击获取 简介:在Android平台上开发音乐播放器是一个涉及多媒体处理、用户界面设计和系统服务交互的综合性项目。本项目提供了完整的音乐播放器源码,覆盖了从基本的多媒体框架使用到高级特性的实现。源码中包含了 MediaPlayer 类的使用, ContentProvider 的交互,UI设计的最佳实践,通知栏控制,服务和 ...

weixin_30021053的博客 2487

安卓MediaPlayer实现在线音乐播放

前言: 之前公司项目里要求加入一个音乐播放的功能,大体功能是获取音乐列表在线播放音乐,在手机锁屏时有锁屏音乐界面,由于之前没有写过此类功能,因此踩了许多坑,今天我记录下来,供小伙伴们参考。 安卓自带的MediaPlayer就支持在线音乐播放功能,所以我就没有引用其他框架,全凭自己摸索实现 1.MediaPlayer初始化 mMediaPlayer = new MediaPlayer();...

qq_36356379的博客 6134

用大白话讲解Carplay(原创)

用大白话讲解Carplay: Carplay是美国苹果公司开发的一套服务,用户通过这套服务可以将iPhone与车载系统连接,然后在车载大屏上操作使用iPhone手机。个人理解,Carplay不能叫车载系统,不是操作系统,只能算一种服务。让你在车上的大屏上使用iPhone,这样用起来更方便,不需要在手机小屏幕上操作。基于这一点,有些人也说Carplay就是个投屏的功能,将手机屏幕投屏到了车机大屏上。可以简单这么理解,但是并不只是投屏这么简单,如果只是投屏的话,车子只是起到了一个显示器的功能,其实不止,手机和

cici2013的专栏 2万+

PX4与ROS协同仿真:从键盘控制到无人机自主飞行

本文详细介绍了如何搭建PX4与ROS协同仿真环境,实现从键盘控制到无人机自主飞行的完整流程。通过XTDrone项目整合PX4飞控、ROS通信框架与Gazebo物理引擎,逐步讲解环境配置、键盘控制实现原理,并深入剖析了迈向Offboard模式实现自主飞行的核心代码与数据流,为无人机算法开发与测试提供了安全的仿真沙盒。

weixin_29169899的博客 498

MediaPlayer,切歌进入setOnCompletionListener的问题

程序没崩,我就没想到要看error,悲剧了就 百度一番,看到这篇文章,瞬间搞定 最近在写安卓音乐播放器的时候遇到个问题。在MediaPlayer播放结束时会回调 Java代码   player.setOnCompletionListener(new OnCompletionListener() {                  @

病毒才俊 8878

MPU6050运动中断唤醒STM32低功耗休眠模式实战

本文详细介绍了如何使用MPU6050运动中断唤醒STM32低功耗休眠模式的实战方案。通过配置MPU6050的运动检测中断作为STM32的唤醒源,实现设备在静止时进入低功耗Stop模式,运动时快速唤醒,大幅延长电池续航。涵盖硬件连接、软件配置、参数调试等关键步骤,并提供实际应用案例和优化建议。

rgv23456789的博客 703

解锁高级播放功能:Jellyfin Enhanced Android TV画质与音频优化技巧

Jellyfin Enhanced Android TV是一款强大的媒体中心客户端,专为Android TV设备打造,让你轻松享受高品质的影视娱乐体验。通过本文的实用技巧,你将学会如何充分利用其高级播放功能,优化画质与音频设置,打造影院级的家庭观影环境。 ## 一、初识Jellyfin Enhanced Android TV界面 Jellyfin Enhanced Android TV采用简洁

gitblog_00853的博客 1169

oracle 11.2.0.3.0 client下载,oracle64位客户端 Instant Client

oracle64位 客户端安装程序,Instant Client v11.2.0.3.0(64-bit)可以用,bo客户端需要配这个的,所以装了一个,64位操作系统中、不安装Oracle-32bit客户端,方便使用PLSQL Developer(不支持64bit位Oracle客户端)安装教程安装配置instantclient下载后,解压到D:\Oracle\instantclient_11_2(特...

weixin_42573757的博客 4516

从Delta Delay到Timing Window:详解数字芯片后端时序差异的那些坑

本文深入剖析了数字芯片后端设计中,模块级与系统级时序分析结果不一致的核心原因。重点解释了Delta Delay如何导致模块级分析的乐观假设,以及Timing Window(时序窗口)差异如何通过影响串扰噪声计算,在顶层集成时引发新的时序违例,尤其是保持时间问题。文章为工程师提供了从约束建模到签核策略的系统性应对方案。

beer8的博客 499

Android audio框架初识

概述 Audio音频子系统 是Android Framework 的一个重要的子系统之一,也是最复杂的子系统之一,其在Android中负责音频方面的数据流传输和控制功能,也负责音频设备的管理。一个完整的Android音频系统架构如下图所示: audio 框架分层 application层 应用层,调用音频服务的app或设置,如:音视频播放器、拨打电话、录音/录视频、音量设置等。 Framework层 Framework层包含java与c++,通过jni机制进行相互调用,主要分为以下三层: Framewor

Harrison509的博客 1393

在Mac上搭建本地AI工作流:Dify与DeepSeek的完美结合

本文介绍了在Mac上搭建本地AI工作流的方法,结合Dify平台和DeepSeek模型。Dify是一个开源的大语言模型应用开发平台,支持可视化AI应用开发。部署步骤包括:1)安装Homebrew和Docker;2)克隆Dify代码库;3)配置环境变量并启动服务。同时,使用Ollama工具本地部署DeepSeek模型,将其集成到Dify中创建聊天助手。通过配置模型接口和新建应用,用户可以在本地环境中实现AI对话功能。这种方案既保证了数据隐私,又提供了灵活的AI应用开发能力。

Linda的自动化测试之旅 1535

初识安卓——基础概念介绍

安卓四层体系结构、Binder、沙箱、签名、SELinux等概念简介

SouthernNights的博客 5365

4、风险管理、信息安全与信息管理的核心原则

本文深入探讨了风险管理、信息安全与信息管理的核心原则,涵盖Risk IT框架、ISO 31000标准以及信息安全与信息管理的关键原则。通过案例分析与实际应用挑战的解析,帮助组织更好地应对数字化时代的风险与安全问题,实现可持续发展。

bread的博客 120

15张图详解三方支付:总架构、5大核心业务处理流程、备付金管理

用户可以将银行卡与零钱账户绑定,建立银行结算账户与支付账户的连接,然后将银行账户资金充值到零钱账户中,或将零钱账号中的余额提现至绑定的银行卡。因此,用户在A支付机构的零钱一般只能支付给A支付机构的商户,如支付宝的零钱不能支付给微信的商户。这五大业务的协同运作,使得第三方支付机构这一庞大的支付服务平台能够为市场提供卓越的支付能力。到了结算时间,网联会向备付金集中存管账户提交结算指令,在第三方支付机构备付金集中存管账户内完成最终的结算,并将结算结果及额度变动情况通知给第三方支付机构,具体流程如图13所示。

银行信息系统应用架构详解 1044

Android音频开发(六)音频编解码之初识MediaCodec上

前五篇我们介绍了关于音频的基础知识,今天来讲述一下音频的重点和难点部分,这一节依然是分上下俩个节点,深入讲述Android音频开发的编解码技术。 1.MediaCodec 介绍 MediaCodeC是Android 4.1(API16 ) 版本加入的一个新的音视频处理API,旨在提高Android平台的音视频编码能力,Mediacodec类可用于访问底层的媒体编解码器,即编码器/解码器组件。这是Android底层的多媒体支持基础设施的一部分(通常与 MediaExtractor, MediaSync, Me

hirezy 4259

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

初识AudioTrack

AudioTrack是管理和播放单一音频资源的类。

浮生若梦 3337

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android AudioRecord 实战:从零构建高效音频录制应用

本文详细介绍了Android AudioRecord的核心配置与实战应用,涵盖参数设置、权限处理、录制流程及PCM转WAV等关键步骤。通过代码示例和兼容性优化技巧,帮助开发者构建高效的音频录制应用,解决常见机型适配问题,提升音频处理性能。

tgb3456789的博客 1125

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深入解析Android AudioMixer:多路音频混音与重采样技术实现

本文深入解析了Android AudioMixer的核心架构与实现原理。作为Android音频系统的“数字调音台”,AudioMixer通过Track抽象和数据处理管线,高效处理多路音频流的混音、重采样、音量控制与格式转换。文章详细剖析了其分组混合、动态钩子选择等性能优化策略,并探讨了在低延迟音频开发中的实战应用与调试要点。

lg888的博客 1003

PCM数据的采集和播放

一、初识PCM 以下介绍来自百度百科 PCM 脉冲编码调制是Pulse Code Modulation的缩写。脉冲编码调制是数字通信的编码方式之一。主要过程是将话音、图像等模拟信号每隔一定时间进行取样,使其离散化,同时将抽样值按分层单位四舍五入取整量化,同时将抽样值按一组二进制码来表示抽样脉冲的幅值。 简而言之,语音、图像经过采样、量化之后进行二进制编码,最后得到的二进制码即为PCM...

cyq7on的博客 2873
上一篇: Delphi写的多媒播放器
下一篇: java写的代码量统计器
ITSource
博客等级 码龄15年 12粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值