BaseActivity 增加点击事件实现
This commit is contained in:
parent
5d2621f17d
commit
985cdbf771
@ -3,6 +3,7 @@ package com.hi.music.player.media3;
|
||||
import android.content.ComponentName;
|
||||
|
||||
import androidx.media3.common.MediaItem;
|
||||
import androidx.media3.common.MediaMetadata;
|
||||
import androidx.media3.session.MediaController;
|
||||
import androidx.media3.session.SessionToken;
|
||||
|
||||
@ -10,29 +11,30 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
import com.hi.music.player.MusicApplication;
|
||||
import com.hi.music.player.helper.CommonUtils;
|
||||
import com.hi.music.player.javabean.response.ResponsePlay;
|
||||
import com.hi.music.player.network.RetrofitManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class MyMediaController {
|
||||
public class MyMediaControllerManager {
|
||||
|
||||
private static volatile MyMediaController MyMediaControllerInstance;
|
||||
private static volatile MyMediaControllerManager myMediaControllerManagerInstance;
|
||||
|
||||
private MediaController mediaController;
|
||||
public static MyMediaController getInstance() {
|
||||
if (MyMediaControllerInstance == null) {
|
||||
public static MyMediaControllerManager getInstance() {
|
||||
if (myMediaControllerManagerInstance == null) {
|
||||
synchronized (RetrofitManager.class) {
|
||||
if (MyMediaControllerInstance == null) {
|
||||
MyMediaControllerInstance = new MyMediaController();
|
||||
if (myMediaControllerManagerInstance == null) {
|
||||
myMediaControllerManagerInstance = new MyMediaControllerManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
return MyMediaControllerInstance;
|
||||
return myMediaControllerManagerInstance;
|
||||
}
|
||||
|
||||
private void init(){
|
||||
public void init(){
|
||||
SessionToken sessionToken =
|
||||
new SessionToken(MusicApplication.myApplication, new ComponentName(MusicApplication.myApplication, PlaybackService.class));
|
||||
ListenableFuture<MediaController> controllerFuture =
|
||||
@ -50,7 +52,28 @@ public class MyMediaController {
|
||||
}, MoreExecutors.directExecutor());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void addMusicPlay(ResponsePlay responsePlay){
|
||||
List<MediaItem> mediaItems = new ArrayList<>();
|
||||
MediaItem.Builder builder = new MediaItem.Builder();
|
||||
builder.setUri(responsePlay.getVideoId());
|
||||
MediaMetadata.Builder MediaMetadata_builder = new MediaMetadata.Builder();
|
||||
// MediaMetadata_builder.setMediaType();
|
||||
// MediaMetadata_builder.setAlbumTitle();
|
||||
// MediaMetadata_builder.setArtist();
|
||||
// MediaMetadata_builder.setDurationMs();
|
||||
// MediaMetadata_builder.setTitle();
|
||||
// MediaMetadata_builder.setRecordingYear();
|
||||
builder.setMediaMetadata(MediaMetadata_builder.build());
|
||||
|
||||
mediaItems.add(builder.build());
|
||||
mediaController.addMediaItems(mediaItems);
|
||||
mediaController.prepare();
|
||||
}
|
||||
|
||||
public void play(){
|
||||
mediaController.play();
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,7 @@ package com.hi.music.player.ui.activity;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
import com.google.android.material.tabs.TabLayoutMediator;
|
||||
@ -41,6 +42,11 @@ public class A_HomeActivity extends BaseActivity<ActivityAhomeBinding> {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFullScreen() {
|
||||
return true;
|
||||
@ -95,5 +101,9 @@ public class A_HomeActivity extends BaseActivity<ActivityAhomeBinding> {
|
||||
tabBinding.homeIcon.setImageResource(isSelected ? selectedIcons[position] : defaultIcons[position]);
|
||||
}
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.hi.music.player.ui.activity;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.hi.music.player.databinding.ActivityAplayBinding;
|
||||
|
||||
public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
||||
@ -15,6 +17,11 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFullScreen() {
|
||||
return true;
|
||||
@ -24,4 +31,9 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
||||
public boolean statusBarLight() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,7 @@
|
||||
package com.hi.music.player.ui.activity;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.hi.music.player.databinding.ActivityAsettingBinding;
|
||||
|
||||
public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
||||
@ -15,6 +17,11 @@ public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFullScreen() {
|
||||
return true;
|
||||
@ -24,4 +31,9 @@ public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
||||
public boolean statusBarLight() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,7 @@ package com.hi.music.player.ui.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.CountDownTimer;
|
||||
import android.view.View;
|
||||
|
||||
import com.hi.music.player.databinding.ActivityAsplashBinding;
|
||||
|
||||
@ -23,6 +24,11 @@ public class A_SplashActivity extends BaseActivity<ActivityAsplashBinding> {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFullScreen() {
|
||||
return true;
|
||||
@ -58,4 +64,9 @@ public class A_SplashActivity extends BaseActivity<ActivityAsplashBinding> {
|
||||
countDownTimer.start();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
}
|
||||
@ -14,7 +14,7 @@ import androidx.viewbinding.ViewBinding;
|
||||
|
||||
import com.hi.music.player.helper.ViewModelScope;
|
||||
|
||||
public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActivity {
|
||||
public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActivity implements View.OnClickListener{
|
||||
|
||||
private final ViewModelScope mViewModelScope = new ViewModelScope();
|
||||
|
||||
@ -38,11 +38,14 @@ public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActiv
|
||||
initFullScreen();
|
||||
}
|
||||
onCreateInit();
|
||||
onInitClick();
|
||||
}
|
||||
protected abstract T getViewBinding();
|
||||
|
||||
protected abstract void onCreateInit();
|
||||
|
||||
protected abstract void onInitClick();
|
||||
|
||||
public abstract boolean isFullScreen();
|
||||
|
||||
public abstract boolean statusBarLight();
|
||||
|
||||
@ -37,6 +37,11 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding> {
|
||||
initView(); // 可以在这里初始化视图
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFullScreen() {
|
||||
return true;
|
||||
@ -97,7 +102,9 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding> {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -36,6 +36,11 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFullScreen() {
|
||||
return false;
|
||||
@ -45,4 +50,9 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
|
||||
public boolean statusBarLight() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,14 +1,12 @@
|
||||
package com.hi.music.player.ui.activity;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.media3.session.MediaController;
|
||||
import androidx.media3.session.SessionToken;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.DataSource;
|
||||
@ -17,8 +15,6 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.bumptech.glide.request.RequestListener;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
import com.google.common.util.concurrent.MoreExecutors;
|
||||
import com.hi.music.player.MusicApplication;
|
||||
import com.hi.music.player.R;
|
||||
import com.hi.music.player.databinding.ActivityPlayBinding;
|
||||
@ -26,17 +22,17 @@ import com.hi.music.player.helper.CommonUtils;
|
||||
import com.hi.music.player.helper.MyValue;
|
||||
import com.hi.music.player.javabean.response.ResponsePlay;
|
||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
||||
import com.hi.music.player.media3.PlaybackService;
|
||||
import com.hi.music.player.media3.MyMediaControllerManager;
|
||||
import com.hi.music.player.ui.activity.viewmodel.VMPlay;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class PlayActivity extends BaseActivity<ActivityPlayBinding> {
|
||||
|
||||
|
||||
private ResponseSingle responseSingle;
|
||||
private VMPlay vmPlay;
|
||||
private MyMediaControllerManager mediaController;
|
||||
|
||||
@Override
|
||||
protected ActivityPlayBinding getViewBinding() {
|
||||
@ -65,10 +61,19 @@ public class PlayActivity extends BaseActivity<ActivityPlayBinding> {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitClick() {
|
||||
vb.btnPlay.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
private void loadInfo(ResponsePlay data) {
|
||||
vb.tvSongName.setText(data.getSongTitle());
|
||||
vb.tvSingerName.setText(data.getSingerName());
|
||||
vb.tvDuration.setText(data.getDuration());
|
||||
|
||||
mediaController = MyMediaControllerManager.getInstance();
|
||||
mediaController.init();
|
||||
mediaController.addMusicPlay(data);
|
||||
}
|
||||
|
||||
private void loadCovert(String url) {
|
||||
@ -109,4 +114,12 @@ public class PlayActivity extends BaseActivity<ActivityPlayBinding> {
|
||||
public boolean statusBarLight() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if(v.equals(vb.btnPlay)){
|
||||
mediaController.play();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user