19.多媒体应用开发

在这里插入图片描述

音频----使用MediaPlayer播放

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用SoundPool播放音频

在这里插入图片描述

缺点:不能播放较长的音频,多用于铃声或游戏音
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.example.practice14;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.media.AudioAttributes;
import android.media.SoundPool;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView listView = findViewById(R.id.listview);
        //创建SoundPool对象,并设置音频相关属性
        AudioAttributes attr = new AudioAttributes.Builder()//创建音效池属性
                .setUsage(AudioAttributes.USAGE_MEDIA)//设置音效的使用场景
                .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)//设置音效类型
                .build();
        final SoundPool soundPool = new SoundPool.Builder()
                .setAudioAttributes(attr)//设置音效池的属性
                .setMaxStreams(10)//设置最多可容纳十个音频流
                .build();

        //将要播放的音频保存在HashMap对象中
        final HashMap<Integer,Integer> soundmap = new HashMap<Integer,Integer>();//创建一个HashMap对象
        soundmap.put(0,soundPool.load(this,R.raw.apple,1));
        soundmap.put(1,soundPool.load(this,R.raw.apple,1));
        soundmap.put(2,soundPool.load(this,R.raw.apple,1));
        soundmap.put(3,soundPool.load(this,R.raw.apple,1));
        soundmap.put(4,soundPool.load(this,R.raw.apple,1));
        soundmap.put(5,soundPool.load(this,R.raw.apple,1));
        soundmap.put(6,soundPool.load(this,R.raw.apple,1));

        //播放音频
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //播放所选音频
                soundPool.play(soundmap.get(i),1,1,0,0,1);
            }
        });
    }
}

视频----使用VideoView播放

在这里插入图片描述

在这里插入图片描述
注:一般不使用按钮控制播放,而是使用下面的一个类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.example.practice15;

import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;

import java.io.File;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        VideoView videoView = findViewById(R.id.video);
        //加载要播放的视频
        File file = new File(Environment.getDownloadCacheDirectory()+"/123.mp4");//获取文件对象
        if(file.exists()){
            videoView.setVideoPath(file.getAbsolutePath());//指定要播放的视频
        }else{
            Toast.makeText(MainActivity.this,"要播放的视频文件不存在",Toast.LENGTH_SHORT).show();
        }
        //控制视频的播放
        MediaController mediaController = new MediaController(MainActivity.this);
        videoView.setMediaController(mediaController);//产生关联
        videoView.requestFocus();//让VideoView获得焦点
        videoView.start();//开始播放视频
        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                Toast.makeText(MainActivity.this,"视屏播放完毕",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

视频----使用MediaPlayer和SurfaceView播放

。。。

控制摄像头拍照

在这里插入图片描述

在这里插入图片描述
。。。。。。

录制视频

。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值