2021-06-08求教怎么讲解代码 怎么实现的 我要怎么进行答辩

Main.Java代码:

package com.zzu.musicplayer760;

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

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    ImageView playIv,pauseIv;
    TextView singerTv,songTv;
    SeekBar seekBar;
    ListView listView;

    private int[] musicnum = {1,2,3,4,5};
    private String[] song = {"好久不见","威廉古堡","富士山下","手写的从前","简单爱"};
    private  String[]  singer ={"陈奕迅","周杰伦","陈奕迅","周杰伦","周杰伦"};
    private int[]  songsid;
    private MediaPlayer mediaPlayer;
    private int status = 0;
    private  double time = 0;
    private Thread thraed;
    private Boolean s = false;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);

                seekBar.setProgress(status);

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

        mediaPlayer = new MediaPlayer();
        initView();
        mediaPlayer = MediaPlayer.create(getApplicationContext(),R.raw.fssx);
        songsid = new int[]{R.raw.hjbj, R.raw.wlgb, R.raw.fssx, R.raw.sxdcq, R.raw.jda};
        try {
            setListViewAdapter();
        } catch (Exception e) {
            Log.i("TAG", "读取歌曲失败");
        }

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
//    mediaPlayer.seekTo(progress);
//    status = progress;
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
s=true;
                mediaPlayer.seekTo(seekBar.getProgress());
                status = seekBar.getProgress();
s=false;

            }
        });
        //播放键
        playIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Boolean a;
                if(mediaPlayer.isPlaying()){
                    a=false;
                }else{
                    a = true;
                }
                if (mediaPlayer!=null){
                try {
                    if(a){
                    mediaPlayer.prepare();
                    mediaPlayer.seekTo(status);
                    mediaPlayer.start();
                    s=false;}
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }}
        });
        pauseIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mediaPlayer.isPlaying()){
                    s=true;
                    mediaPlayer.stop();

                }else{
                    if ()
                }
            }
        });
    }
    
//设置列表项
    private void setListViewAdapter() {
        List<Map<String,Object>>  listitems = new ArrayList<>();
        for (int i = 0;i<song.length;i++){
            Map<String,Object>  listitem = new HashMap<>();
            listitem.put("musicnum",musicnum[i]);
            listitem.put("song",song[i]);
            listitem.put("singer",singer[i]);
            listitem.put("songid",songsid[i]);
            listitems.add(listitem);

        }
        SimpleAdapter simpleAdapter =new SimpleAdapter(this,listitems,
                R.layout.item_local_music,new String[]{"musicnum","singer","song"},
                new int[]{R.id.item_local_music_num,R.id.item_local_music_singer,R.id.item_local_music_song});
        listView.setAdapter(simpleAdapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
s=true;
                    status = 0;
                    if (mediaPlayer!=null){
                        mediaPlayer.reset();
                    }
                mediaPlayer = MediaPlayer.create(getApplicationContext(), songsid[position]);
                    mediaPlayer.start();
                songTv.setText(song[position]);
                singerTv.setText(singer[position]);

                //设置seekbar
               time = mediaPlayer.getDuration();
                int i = new Double(time).intValue();
               seekBar.setMax(i);
               seekBar.setProgress(0);
                thread();
 s=false;
            }
        });

    }
    public void dowork(){
        while (s);
        try{

           int currentPosition=getCurrentPosition();
            status = currentPosition;}
        catch (Exception e){

        }
    }
    
public void thread(){
    thraed = new Thread(){
        public void run(){

            while(status<time){
                dowork();
                handler.sendEmptyMessage(0x111);

            }
        }
    };
    thraed.start();
}
    private int getCurrentPosition(){
        if(mediaPlayer!=null){
            return mediaPlayer.getCurrentPosition();
        }        return 0;    }
        
//初始化参数
    private void initView() {
        playIv = findViewById(R.id.local_music_bottom_iv_play);
        pauseIv = findViewById(R.id.local_music_bottom_iv_pause);
        singerTv = findViewById(R.id.local_music_bottom_tv_singer);
        songTv = findViewById(R.id.local_music_bottom_tv_song);
        seekBar = findViewById(R.id.sb);
        listView = findViewById(R.id.lv1);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值