Android学习(六)Android 多媒体

Android 多媒体应用

手机更新换代越来越快,衍生出了很多多媒体技术。持续更新一些比较常用的多媒体技术,供大家参考。

通知(Notification)

这个功能大家应该都体验过,app经常弹出通知,可以进行简单消息浏览和点击跳转的交互。

基本用法

要注意通知的兼容性,不然同样代码可能会不兼容不同版本。其中高版本版本要求,罗列如下:

  1. Android 9.0

不显示问题跳转
createNotificationChannel()方法必须填写。

  1. Android 8.0

要求必须指定通道ID,setChannelId()方法必须填写。

简单代码如下:
使用NotificationCompat创建通知需要添加依赖:

implementation 'com.android.support:support-v4:26.1.0'

布局文件代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.testapplication.FifthActivity">

    <Button
        android:id="@+id/start_normal_notification"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="简易通知"/>

</android.support.constraint.ConstraintLayout>

activity代码如下

package com.example.testapplication;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class FifthActivity extends AppCompatActivity implements View.OnClickListener {

    private NotificationManager manager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fifth);
        initView();
    }

    private void initView() {
        manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Button button = findViewById(R.id.start_normal_notification);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.start_normal_notification:
                Intent intent = new Intent(this, MainActivity.class);
                PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

                Notification notification = new NotificationCompat.Builder(this)
                        .setContentTitle("test title")
                        .setContentText("test text")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(),
                                R.drawable.ic_launcher))
                        .setChannelId(getPackageName()) //8.0 必须填写
                        .setContentIntent(pendingIntent)    //点击事件的交互意图
                        .build();
                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
                    NotificationChannel channel = new NotificationChannel(
                            getPackageName(),
                            "会话消息",
                            NotificationManager.IMPORTANCE_DEFAULT
                    );
                    manager.createNotificationChannel(channel); 9.0后必须指定
                }

                manager.notify(1, notification);
                break;
            default:
                break;
        }
    }
}

在这里插入图片描述

高级用法

  1. 通知时播放音乐:setSound()
  2. 通知时手机震动:setsetVibrate()
  3. 通知时手机前置LED灯闪烁:setLights()
  4. 通知时使用默认效果:setDefault()

音频播放(MediaPlayer)

现在有很多优秀的开源音频播放库。但是对于部分app来说只是简单的播放音频,完全可以用Android提供的MediaPlayer类来实现。

  1. MediaPlayer状态图

使用Mediaplayer时,需要严格按照官方提供的状态图执行。如果在错误的周期调用了错误的方法,就会导致app无声音播放,甚至报错崩溃。详情可以查看
在这里插入图片描述
2. 基本使用

可以看郭大神。我就不献丑,如果后面有机会再献。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值