package com.uiui.os.activity; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import com.blankj.utilcode.util.FileUtils; import com.bumptech.glide.Glide; import com.uiui.os.R; import com.uiui.os.bean.AlarmClockData; import com.uiui.os.bean.BaseResponse; import com.uiui.os.network.NetInterfaceManager; import com.uiui.os.utils.AlarmUtils; import com.uiui.os.utils.FileUtil; import com.uiui.os.utils.Utils; import com.uiui.os.view.JzvdStdAssert; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import cn.jzvd.Jzvd; import cn.jzvd.JzvdStd; import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; public class NoticeActivity extends AppCompatActivity { @BindView(R.id.tv_title) TextView tv_title; @BindView(R.id.bt_ok) Button bt_ok; @BindView(R.id.cl_voice) ConstraintLayout cl_voice; @BindView(R.id.cl_vp) ConstraintLayout cl_vp; @BindView(R.id.jz_video) JzvdStdAssert jz_video; @BindView(R.id.imageView) ImageView imageView; private AlarmClockData alarmClockData; int code; private MediaPlayer mediaPlayer; private String TAG = NoticeActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notice); ButterKnife.bind(this); Intent intent = getIntent(); code = intent.getIntExtra("id", -1); if (code == -1) { finish(); } else { HashMap oldData = AlarmUtils.getInstance().getOldData(); alarmClockData = oldData.get(code); if (alarmClockData == null) { finish(); } showData(alarmClockData); } } private void showData(AlarmClockData alarmClockData) { tv_title.setText(alarmClockData.getTitle()); bt_ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HashMap oldData = AlarmUtils.getInstance().getOldData(); List data = new ArrayList<>(); for (AlarmClockData alarm : oldData.values()) { if (alarm.getId() == code) { alarm.setFinished(true); } data.add(alarm); } AlarmUtils.getInstance().setAlarmString(data); NetInterfaceManager.getInstance() .getUpdateAlarmObservable(alarmClockData.getId()) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { Log.e("showData", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse baseResponse) { Log.e("showData", "onNext: " + baseResponse); } @Override public void onError(@NonNull Throwable e) { Log.e("showData", "onError: " + e.getMessage()); onComplete(); } @Override public void onComplete() { Log.e("showData", "onComplete: "); finish(); } }); } }); String voiceUrl = alarmClockData.getVoice(); String voicemd5 = alarmClockData.getVoice_md5(); String filePath = alarmClockData.getFile(); if (!TextUtils.isEmpty(voiceUrl)) { cl_voice.setVisibility(View.VISIBLE); String fileName = Utils.getFileNamefromURL(voiceUrl); File file = new File(Utils.getDownLoadPath(NoticeActivity.this) + fileName); String fileMD5 = FileUtils.getFileMD5ToString(file); // if (!md5.equals(fileMD5)) { // // TODO: 2021/12/16 // } else { mediaPlayer = new MediaPlayer(); try { // 切歌之前先重置,释放掉之前的资源 mediaPlayer.reset(); FileInputStream fis = new FileInputStream(file); mediaPlayer.setDataSource(fis.getFD()); // 设置播放源 // mediaPlayer.setDataSource(file.getAbsolutePath()); // 开始播放前的准备工作,加载多媒体资源,获取相关信息 mediaPlayer.prepare(); // 开始播放 mediaPlayer.start(); } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "showData: " + e.getMessage()); } // } } else { cl_voice.setVisibility(View.GONE); } if (!TextUtils.isEmpty(filePath)) { cl_vp.setVisibility(View.VISIBLE); String fileType = FileUtil.getFileType(filePath); Log.e(TAG, "showData: " + fileType); if (FileUtil.isPictureFile(fileType)) { jz_video.setVisibility(View.GONE); imageView.setVisibility(View.VISIBLE); Glide.with(NoticeActivity.this).load(filePath).into(imageView); } else if (FileUtil.isVideoFile(fileType)) { jz_video.setVisibility(View.VISIBLE); imageView.setVisibility(View.GONE); jz_video.setUp(filePath, ""); jz_video.startVideo(); } } else { cl_vp.setVisibility(View.GONE); } } @Override protected void onDestroy() { super.onDestroy(); if (mediaPlayer != null) { if (mediaPlayer.isPlaying()) { mediaPlayer.stop(); } mediaPlayer.release(); mediaPlayer = null; } } @Override public void onBackPressed() { if (Jzvd.backPress()) { return; } super.onBackPressed(); } @Override protected void onPause() { super.onPause(); Jzvd.releaseAllVideos(); } }