mirror of
https://github.com/sifacaii/VlcJellyfin
synced 2025-05-26 06:20:20 -04:00
优化播放控制
This commit is contained in:
parent
f9ab6ca6a8
commit
df3e210841
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@ -3,6 +3,7 @@
|
||||
<component name="DesignSurface">
|
||||
<option name="filePathToZoomLevelMap">
|
||||
<map>
|
||||
<entry key="..\:/code/VlcJellyfin/app/src/main/res/layout/activity_vlc_player.xml" value="0.286231884057971" />
|
||||
<entry key="..\:/work/VlcJellyfin/app/src/main/res/drawable/shape_user_focus.xml" value="0.1625" />
|
||||
<entry key="..\:/work/VlcJellyfin/app/src/main/res/drawable/shape_user_focus_VH.xml" value="0.1625" />
|
||||
<entry key="..\:/work/VlcJellyfin/app/src/main/res/drawable/shape_user_focus_vholder.xml" value="0.1625" />
|
||||
|
@ -27,6 +27,7 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
||||
private static final String TAG = "VLC播放器";
|
||||
public final int TrackType_Subtitle = 0;
|
||||
public final int TrackType_Audio = 1;
|
||||
public final int TrackType_Playlist = 2;
|
||||
|
||||
private Activity mActivity;
|
||||
private MediaPlayer mediaPlayer;
|
||||
@ -47,11 +48,13 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
||||
private ImageView stopBtn;
|
||||
private ImageView subTracksBtn;
|
||||
private ImageView audioTracksBtn;
|
||||
private ImageView playListBtn;
|
||||
private ImageView pauseFlag;
|
||||
private SeekBar currPostion;
|
||||
|
||||
private Timer progressTime = null;
|
||||
|
||||
private PopupMenu playListMenu = null; //播放列表
|
||||
private PopupMenu subTrackMenu = null; //字幕菜单
|
||||
private PopupMenu audioTrackMenu = null; //单轨菜单
|
||||
|
||||
@ -168,7 +171,6 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
||||
playPauseBtn.setOnClickListener(this);
|
||||
stopBtn.setOnClickListener(this);
|
||||
pauseFlag.setOnClickListener(this);
|
||||
//currPostion.setOnSeekBarChangeListener(this);
|
||||
currPostion.setOnKeyListener(new View.OnKeyListener() {
|
||||
@Override
|
||||
public boolean onKey(View view, int i, KeyEvent keyEvent) {
|
||||
@ -191,8 +193,15 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
||||
MediaPlayer.TrackDescription[] subTrackList = mediaPlayer.getSpuTracks();
|
||||
MediaPlayer.TrackDescription[] audioTrackList = mediaPlayer.getAudioTracks();
|
||||
|
||||
subTracksBtn = findViewById(R.id.subTracks);
|
||||
audioTracksBtn = findViewById(R.id.audioTracks);
|
||||
playListBtn = findViewById(R.id.playListBtn);
|
||||
subTracksBtn = findViewById(R.id.subTracksBtn);
|
||||
audioTracksBtn = findViewById(R.id.audioTracksBtn);
|
||||
if(Utils.playList.size() > 1){
|
||||
initPlayListMenu();
|
||||
}else{
|
||||
playListBtn.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(null != subTrackList && subTrackList.length > 1){
|
||||
initSubTrackMenu(subTrackList);
|
||||
}else{
|
||||
@ -207,6 +216,15 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
||||
|
||||
}
|
||||
|
||||
private void initPlayListMenu(){
|
||||
playListMenu = new PopupMenu(this,playListBtn);
|
||||
for(int i=0;i<Utils.playList.size();i++){
|
||||
playListMenu.getMenu().add(TrackType_Playlist,i,i,Utils.playList.get(i).Name);
|
||||
}
|
||||
playListMenu.setOnMenuItemClickListener(this);
|
||||
subTracksBtn.setOnClickListener(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化字幕菜单
|
||||
* @param subTrackList
|
||||
@ -427,12 +445,15 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
||||
playOrpause();
|
||||
} else if (id == R.id.stopBtn) {
|
||||
stop();
|
||||
} else if (id == R.id.subTracks){
|
||||
} else if (id == R.id.subTracksBtn){
|
||||
subTrackMenu.show();
|
||||
Log.d(TAG, "onClick: 当前轨ID:" + mediaPlayer.getSpuTrack());
|
||||
} else if (id == R.id.audioTracks){
|
||||
subTrackMenu.getMenu().getItem(mediaPlayer.getSpuTrack()).setChecked(true);
|
||||
} else if (id == R.id.audioTracksBtn){
|
||||
audioTrackMenu.show();
|
||||
Log.d(TAG, "onClick: 当前单轨ID:" + mediaPlayer.getAudioTrack());
|
||||
audioTrackMenu.getMenu().getItem(mediaPlayer.getAudioTrack()).setChecked(true);
|
||||
} else if (id == R.id.playListBtn){
|
||||
playListMenu.show();
|
||||
playListMenu.getMenu().getItem(Utils.playIndex).setChecked(true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -447,6 +468,9 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
||||
}else if(groupid == TrackType_Audio){
|
||||
mediaPlayer.setAudioTrack(itemid);
|
||||
return true;
|
||||
}else if(groupid == TrackType_Playlist){
|
||||
Utils.playIndex = itemid;
|
||||
play();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -0,0 +1,5 @@
|
||||
<vector android:height="48dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M4,10h12v2L4,12zM4,6h12v2L4,8zM4,14h8v2L4,16zM14,14v6l5,-3z"/>
|
||||
</vector>
|
@ -132,7 +132,7 @@
|
||||
android:focusable="true"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/subTracks"
|
||||
android:id="@+id/subTracksBtn"
|
||||
android:layout_width="@dimen/button_width"
|
||||
android:layout_height="@dimen/button_height"
|
||||
android:layout_marginLeft="@dimen/button_margin_left"
|
||||
@ -141,13 +141,22 @@
|
||||
android:focusable="true"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/audioTracks"
|
||||
android:id="@+id/audioTracksBtn"
|
||||
android:layout_width="@dimen/button_width"
|
||||
android:layout_height="@dimen/button_height"
|
||||
android:layout_marginLeft="@dimen/button_margin_left"
|
||||
android:background="@drawable/shape_user_focus"
|
||||
android:src="@drawable/ic_outline_audiotrack_48"
|
||||
android:focusable="true" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/playListBtn"
|
||||
android:layout_width="@dimen/button_width"
|
||||
android:layout_height="@dimen/button_height"
|
||||
android:layout_marginLeft="@dimen/button_margin_left"
|
||||
android:background="@drawable/shape_user_focus"
|
||||
android:src="@drawable/ic_outline_playlist_play_48"
|
||||
android:focusable="true" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
Loading…
Reference in New Issue
Block a user