- 浏览: 419605 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
rkikbs:
有下载地址么?
我的iOS视频开放了,欢迎大家在线观看 -
wjpiao:
支持支持!
我的iOS视频开放了,欢迎大家在线观看 -
关东升:
wwwang89 写道关老师,你好 ,请问:我的服务器端是用j ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
wwwang89:
关老师,你好 ,请问:我的服务器端是用java写的,不是.ne ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
关东升:
crowning_2008 写道关老师 好!你好
iOS开发那些事-关于性能优化–选择nib还是故事板的讨论
播放音频文件。按照音频文件来源不同可以分为:资源文件播放、系统播放文件和网络文件播放。
资源文件播放是放在“<工程>/res/raw”,然后发布的时候被打成APK包一起安装在手机上。很显然这种方式不适合用于播放娱乐为主的多媒体文件,由于娱乐的多媒体文件是经常更新的,而放置在这个raw下面的文件用户是没有权限更新的,因此这种方式一般用于应用自己的一些音频和视频播放,如按键音、开机启动音、信息提示音等应用使用的声音。
下面看看播放资源音频文件的代码请参考代码清单12-1,完整代码请参考Chapter12_1工程中AudioPlayer代码部分。
【代码清单12-1】
上面的代码只是实现了播放、暂停、停止功能,下一首、上一首和进度控制条的功能没有实现。文件放在raw目录下面调用play()方法实现了播放功能,mMediaPlayer = MediaPlayer.create(this, R.raw.ma_mma)是创建MediaPlayer,通过mMediaPlayer.setOnPreparedListener(preListener)设置了OnPreparedListener监听器,它是监听文件预处理完成之后事件。
预处理完成之后MediaPlayer进入prepared状态,调用start()方法是播放媒体文件方法,同时把播放标志设置为PLAYING状态。
播放流程如图12-5所示。
图12-5播放流程
下面是暂停功能播放实现,MediaPlayer的pause()方法实现了媒体暂停,并把标志设定为PAUSE。
下面是停止功能播放实现,MediaPlayer的stop()方法实现了媒体停止,并把标志设定为STOP。
出自《Andorid开发案例驱动教程》
资源文件播放是放在“<工程>/res/raw”,然后发布的时候被打成APK包一起安装在手机上。很显然这种方式不适合用于播放娱乐为主的多媒体文件,由于娱乐的多媒体文件是经常更新的,而放置在这个raw下面的文件用户是没有权限更新的,因此这种方式一般用于应用自己的一些音频和视频播放,如按键音、开机启动音、信息提示音等应用使用的声音。
下面看看播放资源音频文件的代码请参考代码清单12-1,完整代码请参考Chapter12_1工程中AudioPlayer代码部分。
【代码清单12-1】
public class AudioPlayer extends Activity { private ImageButton play; private ImageButton stop; private MediaPlayer mMediaPlayer; private int state = IDLE; private static final int PLAYING = 0; private static final int PAUSE = 1; private static final int STOP = 2; private static final int IDLE = 3; public static final int UPDATE = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.audio_player); // 初始化播放按钮 play = (ImageButton) findViewById(R.id.play); play.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { if (state == PLAYING) { pause(); } else { start(); } } }); // 初始化停止按钮 stop = (ImageButton) findViewById(R.id.stop); stop.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { stop(); } }); // 开始播放歌曲 play(); } private void pause() { if (mMediaPlayer.isPlaying()) { mMediaPlayer.pause(); state = PAUSE; } play.setImageResource(R.drawable.play); } private void start() { if (state == STOP) { play(); } else if (state == PAUSE) { mMediaPlayer.start(); state = PLAYING; } play.setImageResource(R.drawable.pause); } private void stop() { mMediaPlayer.stop(); state = STOP; play.setImageResource(R.drawable.play); } // MediaPlayer进入prepared状态开始播放 private OnPreparedListener preListener = new OnPreparedListener() { public void onPrepared(MediaPlayer arg0) { mMediaPlayer.start(); state = PLAYING; } }; private void play() { try { if (mMediaPlayer == null || state == STOP) { // 创建MediaPlayer对象并设置Listener mMediaPlayer = MediaPlayer.create(this, R.raw.ma_mma); mMediaPlayer.setOnPreparedListener(preListener); } else { // 复用MediaPlayer对象 mMediaPlayer.reset(); } } catch (Exception e) { e.printStackTrace(); } } }
上面的代码只是实现了播放、暂停、停止功能,下一首、上一首和进度控制条的功能没有实现。文件放在raw目录下面调用play()方法实现了播放功能,mMediaPlayer = MediaPlayer.create(this, R.raw.ma_mma)是创建MediaPlayer,通过mMediaPlayer.setOnPreparedListener(preListener)设置了OnPreparedListener监听器,它是监听文件预处理完成之后事件。
private void play() { try { if (mMediaPlayer == null || state == STOP) { // 创建MediaPlayer对象并设置Listener mMediaPlayer = MediaPlayer.create(this, R.raw.ma_mma); mMediaPlayer.setOnPreparedListener(preListener); } else { // 复用MediaPlayer对象 mMediaPlayer.reset(); } } catch (Exception e) { e.printStackTrace(); } }
预处理完成之后MediaPlayer进入prepared状态,调用start()方法是播放媒体文件方法,同时把播放标志设置为PLAYING状态。
private OnPreparedListener preListener = new OnPreparedListener() { public void onPrepared(MediaPlayer arg0) { mMediaPlayer.start(); state = PLAYING; } };
播放流程如图12-5所示。
图12-5播放流程
下面是暂停功能播放实现,MediaPlayer的pause()方法实现了媒体暂停,并把标志设定为PAUSE。
private void pause() { if (mMediaPlayer.isPlaying()) { mMediaPlayer.pause(); state = PAUSE; } play.setImageResource(R.drawable.play); }
下面是停止功能播放实现,MediaPlayer的stop()方法实现了媒体停止,并把标志设定为STOP。
private void stop() { mMediaPlayer.stop(); state = STOP; play.setImageResource(R.drawable.play); }
出自《Andorid开发案例驱动教程》
发表评论
-
智捷课堂改版啦!
2015-08-04 12:09 1新站上线,为庆祝网站改版,全站所有视频限时免费三天(8月5日 ... -
《Android开发案例驱动教程》之十五章云端应用整篇下载
2011-12-08 18:08 1148《Android开发案例驱动教程》15章--云端应用[colo ... -
《Android开发案例驱动教程》源码
2011-12-08 17:57 1324《Android开发案例驱动教程》15,16,17章源码 目 ... -
android中google“定位查询”
2011-08-03 15:18 1225“定位查询”locate()方法,增加一个线程,在该线程中处理 ... -
7.1.5 选项卡结合案例详解
2011-07-27 08:58 1491选项卡是通过TabHost和TabActivity一起实现的, ... -
7.1.4 ScrollView结合案例详解
2011-07-26 17:50 2137ScrollView是一个滚动条控件,当屏幕中内容很多时候需要 ... -
7.1.3 TimePicker结合案例详解
2011-07-25 17:06 3222TimePicker是Android的时间设置控件。TimeP ... -
7.1.2 DatePicker结合案例详解
2011-07-23 15:56 1626DatePicker是Android的日期设置控件。DateP ... -
7.1.1 ImageSwitcher案例分析详解
2011-07-21 10:50 2166ImageSwitcher图像切换器,可以切换器图像。Imag ... -
7.5 TableLayout布局详解
2011-07-20 10:17 2036TableLayout表格布局,将子元素的位置分配到行或列中。 ... -
7.4 AbsoluteLayout布局详解
2011-07-19 16:35 4593AbsoluteLayout绝对布局,指定了子元素准确的x/y ... -
7.3 RelativeLayout布局详解
2011-07-19 14:11 1058RelativeLayout相对布局, 允许子元素指定他们相对 ... -
7.2 LinearLayout布局详解
2011-07-18 10:23 1063LinearLayout线性布局,线性布局是所有布局中最常用的 ... -
6.4 Android国际化和本地化
2011-07-14 15:37 1605何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言 ... -
6.1.6 Gallery结合案例详解
2011-07-13 17:04 1516Gallery(相册)控件是个很不错的图片查看控件,屏幕中有一 ... -
6.1.5 GridView详解
2011-07-13 09:25 1735Android中的数据能够通过GridView类实现表格化展现 ... -
6.2 Toast 详解
2011-07-12 17:02 900Toast用于向用户显示一些帮助或提示,有三种展现形式: • ... -
ListView分页(带图片)显示用法案例
2011-07-11 17:01 3153ListView是Android中最为常用的列表类型控件,Li ... -
Spinner用法案例
2011-07-11 15:26 2995Spinner控件也是一种列表类型的控件,它的继承关系如下: ... -
Android多媒体--网络文件播放
2011-07-08 15:22 1800网络文件就是指放在网络上的文件,也可能是流媒体等网络资源。由于 ...
相关推荐
2. **头文件和库**:NDK提供了Android系统的API头文件和必要的库文件,使得开发者可以访问Android系统服务,如硬件设备、多媒体、网络等。 3. **构建系统**:如Build.Gradle插件,使得在Android Studio中可以方便地...
要实现这一功能,开发者需要理解Android多媒体框架、网络编程以及文件系统操作等多个方面的知识。以下将详细讲解如何在Android应用中实现这一功能。 首先,了解Android多媒体框架至关重要。Android提供了一个强大的...
例如,Android 33可能增加了新的系统服务,改进了权限管理,或者引入了更强大的多媒体支持,这些都会直接影响到应用的开发和兼容性。 ext5是Android 33中的一个扩展,它可能是对现有文件系统的改进或增强。在...
对于64位Windows用户来说,"android-ndk-r20b-windows-x86_64.zip"是一个关键资源,它意味着可以直接在Windows环境中搭建本地开发环境,无需担心系统架构问题。解压后的文件包括了所有必要的工具和库,如编译器、...
在Android开发中,多媒体处理是应用功能的重要组成部分,尤其是音频播放。`MediaPlayer`类是Android提供的一个核心组件,专门用于播放各种音频文件。本篇将深入讲解如何使用`MediaPlayer`来实现音频播放,并通过示例...
本节将深入探讨Android多媒体开发的高级编程技巧,帮助开发者实现更高效、更丰富的多媒体应用。 1. **多媒体框架概述** Android的多媒体框架基于开放移动联盟(OMA)的开放移动 Alliance Digital Media ...
本篇将深入探讨Android多媒体开发的高级编程技术,帮助开发者掌握如何在Android应用中集成丰富的媒体功能。 1. **多媒体框架** Android提供了一个强大的多媒体框架,包括Media Framework,它由多个组件构成,如...
在Android平台上进行应用开发,音视频的编解码是一个重要的技术领域,特别是在开发多媒体应用程序时。这期【eoeAndroid--开发--特刊】第18期的主题是“Android--开发--音视频的编解码”,它深入探讨了Android如何...
Android 项目是使用 Android 操作系统和相关开发工具开发的一款移动应用程序。Android 平台提供了丰富的功能和接口,开发人员可以使用 Java 或 Kotlin 等编程语言编写 Android 应用程序。Android 项目也可以是针对...
这本书深入探讨了如何在智能手机和平板电脑上构建图形、音乐和视频应用,涵盖了Android多媒体开发的各个方面,对于想要提升自己在Android多媒体技术方面能力的开发者来说,是一份宝贵的资源。 在Android平台上进行...
在Android平台上,多媒体...总结来说,`Android MediaPlayer`是Android平台多媒体开发的重要部分,理解和熟练使用它可以创建功能丰富的音乐和视频播放应用。同时,合理利用第三方`jar`库可以进一步优化和扩展播放功能。
在Android平台上,多媒体功能是应用开发中不可或缺的一部分,尤其是音频播放。本教程将深入探讨如何使用`SoundPool`类来实现高效、灵活的音频播放。`SoundPool`是Android提供的一种轻量级的音频管理工具,特别适用于...
本文将深入探讨Android多媒体开发的高级编程技术,并基于提供的资源——"Android多媒体开发高级编程及源码",来解析相关知识点。 1. **Android多媒体框架** Android系统提供了一个强大的多媒体框架,包括...
在Android平台上,开发一个网络视频播放器是一项技术性较强的任务,涉及到多个关键知识点。这个"Android--开发--网络视频播放器(完整可运行).rar"压缩包很可能包含了一个完整的项目源码,允许开发者深入理解并实践...
在Android平台上,多媒体功能的开发是一项重要的任务,尤其是在构建丰富的用户体验时。本篇文章将深入探讨如何使用`MediaPlayer`类来播放音频,这是Android SDK提供的一种基础且强大的工具,用于处理各种音频格式。`...
总的来说,这个压缩包提供了VLC for Android的一个关键组件,使得armeabi-v7a架构的设备可以利用其强大的多媒体播放能力。无论是直接安装.apk还是通过集成.aar文件开发应用,用户都能享受到VLC的稳定性和兼容性。...
本资源“Android--开发--rockplayer_ffmpeg.rar”很可能是关于如何在Android上集成和使用FFmpeg库来构建类似RockPlayer的多媒体播放器的开发教程或源代码示例。FFmpeg是一个开源的跨平台项目,它包含了众多处理音频...
【第一版第九章】老罗Android开发视频--存储数据和文件(7集) 【第一版第十章】老罗Android开发视频--对话框介绍(4集) 【第一版第十一章】老罗Android开发视频--通知的使用(2集) 【第一版第十二章】老罗...
提供了全面的Android多媒体开发指南。内容涵盖了Android系统的整体架构、多媒体架构的详细介绍,以及OpenCore平台的核心概念和代码结构。深入探讨了文件格式处理、编解码技术,以及OpenMAX的功能。此外,还提供了...
- **09**、**10**、**07**、**06**、**05**:依次对应其他章节,涵盖了Android开发的不同方面,如数据存储、多媒体处理、动画效果、性能优化等。 通过分析这些源文件,读者可以逐步了解并掌握Android应用开发的各个...