1. 通知 2. 相机 3. 多媒体播放

1.通知

.gradle中:

    <!-- 获取声音权限 -->
    <uses-permission android:name="android.permission.VIBRATE" />
    <!-- 获取服务前台权限 -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

java中:

//                设置点击跳转
                Intent intent = new Intent(MainActivity.this, NoticeActivity.class);
                PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);



//   1. 启动通知服务,创建Manager进行通知管理
                NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

                //高版本需要渠道
                if(Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){
                    //只在Android O之上需要渠道,这里的第一个参数要和下面的channelId一样
                    NotificationChannel notificationChannel = new NotificationChannel("1","name",NotificationManager.IMPORTANCE_HIGH);
                    //如果这里用IMPORTANCE_NOENE就需要在系统的设置里面开启渠道,通知才能正常弹出
                    manager.createNotificationChannel(notificationChannel);
                }

//  2. 类构造器构建builder,builder创建通知
                Notification notification = new NotificationCompat.Builder(MainActivity.this,"1")
                        .setContentTitle("这是一个内容标题")
                        .setContentText("这是一个内容文本")
                        .setWhen(System.currentTimeMillis())              //  通知被创建的时间:以毫秒为单位
                        .setSmallIcon(R.mipmap.ic_launcher)               //  设置通知小图标
                        .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))                                            // 设置通知的大图标
                        .setContentIntent(pendingIntent)                  //  开启延迟加载
                        .setAutoCancel(true)                              //  设置通知取消
                        .setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Ding.ogg")))                                                 // 设置音频
                        .setVibrate(new long[] {0,1000,1000,1000})        // 设置震动
                        .setLights(Color.GREEN,1000,1000)                 // 设置闪烁灯
                        .setDefaults(NotificationCompat.DEFAULT_ALL)      // 默认
                        .setStyle(new NotificationCompat.BigTextStyle().bigText("ajdlsfdkjhfewtyeiwuhyewuityeuityerioutye"))                         // 设置长文本
                        .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.drawable.aaa)))  // 设置图片
                        .setPriority(NotificationCompat.PRIORITY_LOW)     // 设置等级
                        .build();
                manager.notify(1,notification);                           // 给通知设置一个唯一id


            }

        });

service中:

        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification notification = new NotificationCompat.Builder(this, "1")
                .setContentTitle("this is service")
                .setContentText("我是一条服务")
                .setSmallIcon(R.drawable.ic_launcher_foreground)
                .build();
        manager.notify(1,notification);
        startForeground(1,notification);

2. 相机

public class MainActivity extends AppCompatActivity {

    private MediaPlayer mediaPlayer = new MediaPlayer();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button1 = findViewById(R.id.button1);
        Button button2 = findViewById(R.id.button2);
        Button button3 = findViewById(R.id.button3);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!mediaPlayer.isPlaying()) {
                    mediaPlayer.start();
                    Toast.makeText(MainActivity.this, "开启音乐", Toast.LENGTH_SHORT).show();
                }

            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer.isPlaying()) {
                    mediaPlayer.pause();
                }

            }
        });

        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer.isPlaying()) {
                    mediaPlayer.reset();
                    File file = new File(Environment.getExternalStorageDirectory(), "music.mp3");
                    try {
                        mediaPlayer.setDataSource(file.getPath());
                        mediaPlayer.prepare();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

            }
        });

        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
        } else {
//            在根目录下建立一个music.MP3文件
            File file = new File(Environment.getExternalStorageDirectory(), "music.mp3");
            try {
                mediaPlayer.setDataSource(file.getPath());
                mediaPlayer.prepare();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case 1:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    File file = new File(Environment.getExternalStorageDirectory(), "music.mp3");
                    try {
                        mediaPlayer.setDataSource(file.getPath());
                        mediaPlayer.prepare();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } else {
                    Toast.makeText(this, "没有权限使用", Toast.LENGTH_SHORT).show();
                    finish();
                }
                break;
            default:
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer != null) {
            mediaPlayer.stop();
            mediaPlayer.release();
        }
    }
}

3. 播放器

public class MainActivity extends AppCompatActivity {

    private VideoView videoView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button1 = findViewById(R.id.button1);
        Button button2 = findViewById(R.id.button2);
        Button button3 = findViewById(R.id.button3);
        videoView = findViewById(R.id.video_view);

        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!videoView.isPlaying()) {
                    videoView.start();
                }

            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (videoView.isPlaying()) {
                    videoView.pause();
                }

            }
        });

        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (videoView.isPlaying()) {
                    videoView.resume();
                }

            }
        });

        if (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
        } else {
//            初始化MediaPlayer
            initVideoPath();
        }
    }

    private void initVideoPath() {
        File file = new File(Environment.getExternalStorageDirectory(), "movie.mp4");
        videoView.setVideoPath(file.getPath());

    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case 1:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    initVideoPath();
                } else {
                    Toast.makeText(this, "没有授权无法使用视频播放器", Toast.LENGTH_SHORT).show();
                    finish();
                }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (videoView != null) {
            videoView.suspend();
        }
    }
}

版权声明:本文为ssy197原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ssy197/p/13690233.html