第一行代码 学习笔记 丰富你的程序--运用手机多媒体

本文介绍了Android中通知的创建及使用方法,包括基本用法、进阶技巧和高级功能,并详细讲解了如何通过MediaPlayer和VideoView播放音频和视频。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.1  将程序运行到手机上

 

8.2 使用通知

  通知是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。

8.2.1 通知的基本用法

  通知的用法比较灵活,既可以在活动里创建,也可以在广播接收器里创建,还可以在服务里创建。不过创建的整体步骤相同

首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICATION_SERVICE即可。因此,获取NotificationManager的实例就可以写成:

NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

接下来需要使用一个Builder构造器来创建Notification对象,但问题在于,几乎Android系统的每一个版本都会对通知这部分功能进行或多或少的修改。解决方案:使用support库中提供的兼容API。support-v4库提供了一个NotificationCompat类,使用这个类的构造器来创建Notification对象,就可以保证程序在所有Android系统版本上都能正常工作。实例如下:

Notification notification =new NotificationCompat.Builder(context).build();

当然 ,上述代码只是创建了一个空的Notification 对象


然后,只需调用NotificationManager的notify()方法就可以让通知显示出来了。notify()方法接收两个参数,第一个参数是id,要保证为每个通知所指定的id都是不同的。第二个则是Notification对象。

实例如下:


想要实现通知的点击效果,我们还需要再代码中进行相应的设置,这就涉及了一个全新的概念PendingIntent.

PendingIntent提供了几个静态方法用于获取PendingIntent的实例,可以根据需求来选择是使用getActivity()方法,getBroadcast()方法,还是getService()方法。这几个方法所接收的参数都是相同的,第一个参数依旧是Context,不用多做解释,第二个参数一般用不到,通常都是传入0即可。第三个参数是一个Intent对象。我们可以通过这个对象构建出PendingIntent的“意图”。第四个参数用于确定PendingIntent()的行为,有FLAG_ONE_SHOT,FLAG_NO_CREATE,FLAG_CANCEL_CURREND和FALG_DPDATE_CURRENT这4种值可选。每种值的具体含义可以查阅文档,通常情况下直接传入0即可。




8.2.2 通知的进阶技巧




8.2.3 通知的高级功能







8.3 调用摄像头和相册

8.3.1 调用摄像头拍照





8.3.2 从相册中选择照片







8.4 播放多媒体文件

8.4.1 播放音频

  在Android中播放音频文件一般都是使用MediaPlayer类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了MediaPlayer类中一些较为常用的控制方法。


 了解上述方法后。我们来梳理一下MediaPlayer的工作流程。首先需要创建出一个MediaPlayer对象,然后调用setDataSource()方法来设置音频文件的路径,再调用prepare()方法使MediaPlayer进入到准备状态,接下来调用 start()方法就可以开始播放音频,调用pause()方法就会暂停播放,调用reset()方法就会停止播放。







8.4.2 播放视频

  播放视频文件其实不比播放音频文件复杂,主要是使用VideoView类来实现的。这个类将视频的显示和控制集于一身。VideoView的用法和MediaPlayer也比较类似,主要有一下常用的方法:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值