Danei Course-Music Player v1.0(第1部分)

电脑杂谈  发布时间:2020-03-24 14:04:00  来源:网络整理

97电影网不用播放 器_以前看见过一款在手机主界面上播放视频的视频播发器_达内播放器注册码

<!-- 允许挂载和反挂载文件系统可移动存储 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 读取外部存储权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

首先实现简单的音乐播放和停止功能

准备: 打开ddms并将音乐放入以下路径

97电影网不用播放 器_达内播放器注册码_以前看见过一款在手机主界面上播放视频的视频播发器

这里写图片描述

public class MainActivity extends AppCompatActivity {
    private Button btnPlay;
    private Button btnStop;
    //完整路径,开头的“/”不能丢,并且路径严格区分大小写
    String musicPath = "/storage/emulated/0/Music/Akia-california.mp3";
    private MediaPlayer player;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        InnerOnClickListener listener = new InnerOnClickListener();
        btnPlay = findViewById(R.id.btn_play);
        btnPlay.setOnClickListener(listener);
        btnStop = findViewById(R.id.btn_stop);
        btnStop.setOnClickListener(listener);
        player = new MediaPlayer();
    }
    private class InnerOnClickListener implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.btn_play:
                    try {
                        //重置播放工具
                        player.reset();
                        //设置需要播放歌曲的路径
                        player.setDataSource(musicPath);
                        //准备,即加载歌曲,即缓冲
                        //歌曲在sd卡中,需要读取到内存里
                        player.prepare();
                        //播放
                        player.start();
                    } catch (IOException e) {
                    }
                    break;
                case R.id.btn_stop:
                    player.stop();
                    break;
            }
        }
    }
}

在SD卡下遍历文件

97电影网不用播放 器_以前看见过一款在手机主界面上播放视频的视频播发器_达内播放器注册码

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //【目标】扫描sd卡下的Music文件夹,获取所有歌曲信息
        //1、获取sdcard下的Music文件夹的File对象
        //2、检查Music文件夹是否存在
        //3、获取Music文件夹下的文件列表
        //4、检查文件列表是否有效
        //5、遍历文件列表
        //5.1、检查是否是文件
        //5.2、检查是否是mp3文件
        String musicPath = "/storage/emulated/0/Music/";
        File musicDir = new File(musicPath);
        if(musicDir.exists()){
            Log.d("MUSIC","【信息】文件夹存在");
            File[] files = musicDir.listFiles();
            if(files != null && files.length>0){
                Log.d("MUSIC","【信息】文件夹列表有效");
                for(int i=0;i<files.length;i++){
                    if(files[i].isFile()){
                        String fileName = files[i].getName();
                        if(fileName.toLowerCase().endsWith(".mp3")){
                            Log.d("MUSIC",files[i].getAbsolutePath());
                        }else{
                            Log.w("MUSIC","【错误】当前遍历到的不是mp3文件");
                        }
                    }else{
                        Log.w("MUSIC","【错误】当前遍历到的第"+i+"个不是文件");
                    }
                }
            }else {
                Log.w("MUSIC","【错误】文件夹列表无效");
            }
        }else{
            Log.w("MUSIC","【错误】文件夹不存在");
        }
    }
}

输出结果

这里写图片描述

97电影网不用播放 器_达内播放器注册码_以前看见过一款在手机主界面上播放视频的视频播发器

环境类

Environment类是专门用于访问外部存储的实用程序类. 此类提供了一系列静态方法和常量,可轻松访问外部存储.

File getExternalStorage()//获取sdcard的文件对象

97电影网不用播放 器_以前看见过一款在手机主界面上播放视频的视频播发器_达内播放器注册码

File getExternalStoragePublicDirectory(String)//获取sdcard下的默认文件夹,例如Music文件夹的File对象,该参数是Environment类的常量,例如DIRECTORY_MUSIC

不同手机上的sdcard路径不同. 为了确保可以找到sdcard路径,可以将放在上面的栗子中.

String musicPath = "/storage/emulated/0/Music/";
File musicDir = new File(musicPath);

更改

File musicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);

String getExternalStorageState(); //获取sdcard的状态. 如果已安装sdcard并可以正常使用达内播放器注册码达内播放器注册码,则返回值应与环境中的常量MEDIA_MOUNTED相匹配

每部手机都有一个sdcard. 无论您的手机是32GB还是64GB,手机都会将这些存储空间分为主存储空间和扩展存储空间. 那么此扩展存储空间就是sdcard,因此sdcard不一定是sdcard. / p>

Sdcard不可用状态. 例如: 当手机连接到计算机时,手机的sdcard不可用,因为两端无法同时对同一个文件进行操作.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-150684-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...