mirror of
https://github.com/sifacaii/VlcJellyfin
synced 2025-06-03 00:58:06 -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">
|
<component name="DesignSurface">
|
||||||
<option name="filePathToZoomLevelMap">
|
<option name="filePathToZoomLevelMap">
|
||||||
<map>
|
<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.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_VH.xml" value="0.1625" />
|
||||||
<entry key="..\:/work/VlcJellyfin/app/src/main/res/drawable/shape_user_focus_vholder.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播放器";
|
private static final String TAG = "VLC播放器";
|
||||||
public final int TrackType_Subtitle = 0;
|
public final int TrackType_Subtitle = 0;
|
||||||
public final int TrackType_Audio = 1;
|
public final int TrackType_Audio = 1;
|
||||||
|
public final int TrackType_Playlist = 2;
|
||||||
|
|
||||||
private Activity mActivity;
|
private Activity mActivity;
|
||||||
private MediaPlayer mediaPlayer;
|
private MediaPlayer mediaPlayer;
|
||||||
@ -47,11 +48,13 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
private ImageView stopBtn;
|
private ImageView stopBtn;
|
||||||
private ImageView subTracksBtn;
|
private ImageView subTracksBtn;
|
||||||
private ImageView audioTracksBtn;
|
private ImageView audioTracksBtn;
|
||||||
|
private ImageView playListBtn;
|
||||||
private ImageView pauseFlag;
|
private ImageView pauseFlag;
|
||||||
private SeekBar currPostion;
|
private SeekBar currPostion;
|
||||||
|
|
||||||
private Timer progressTime = null;
|
private Timer progressTime = null;
|
||||||
|
|
||||||
|
private PopupMenu playListMenu = null; //播放列表
|
||||||
private PopupMenu subTrackMenu = null; //字幕菜单
|
private PopupMenu subTrackMenu = null; //字幕菜单
|
||||||
private PopupMenu audioTrackMenu = null; //单轨菜单
|
private PopupMenu audioTrackMenu = null; //单轨菜单
|
||||||
|
|
||||||
@ -168,7 +171,6 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
playPauseBtn.setOnClickListener(this);
|
playPauseBtn.setOnClickListener(this);
|
||||||
stopBtn.setOnClickListener(this);
|
stopBtn.setOnClickListener(this);
|
||||||
pauseFlag.setOnClickListener(this);
|
pauseFlag.setOnClickListener(this);
|
||||||
//currPostion.setOnSeekBarChangeListener(this);
|
|
||||||
currPostion.setOnKeyListener(new View.OnKeyListener() {
|
currPostion.setOnKeyListener(new View.OnKeyListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onKey(View view, int i, KeyEvent keyEvent) {
|
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[] subTrackList = mediaPlayer.getSpuTracks();
|
||||||
MediaPlayer.TrackDescription[] audioTrackList = mediaPlayer.getAudioTracks();
|
MediaPlayer.TrackDescription[] audioTrackList = mediaPlayer.getAudioTracks();
|
||||||
|
|
||||||
subTracksBtn = findViewById(R.id.subTracks);
|
playListBtn = findViewById(R.id.playListBtn);
|
||||||
audioTracksBtn = findViewById(R.id.audioTracks);
|
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){
|
if(null != subTrackList && subTrackList.length > 1){
|
||||||
initSubTrackMenu(subTrackList);
|
initSubTrackMenu(subTrackList);
|
||||||
}else{
|
}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
|
* @param subTrackList
|
||||||
@ -427,12 +445,15 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
playOrpause();
|
playOrpause();
|
||||||
} else if (id == R.id.stopBtn) {
|
} else if (id == R.id.stopBtn) {
|
||||||
stop();
|
stop();
|
||||||
} else if (id == R.id.subTracks){
|
} else if (id == R.id.subTracksBtn){
|
||||||
subTrackMenu.show();
|
subTrackMenu.show();
|
||||||
Log.d(TAG, "onClick: 当前轨ID:" + mediaPlayer.getSpuTrack());
|
subTrackMenu.getMenu().getItem(mediaPlayer.getSpuTrack()).setChecked(true);
|
||||||
} else if (id == R.id.audioTracks){
|
} else if (id == R.id.audioTracksBtn){
|
||||||
audioTrackMenu.show();
|
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){
|
}else if(groupid == TrackType_Audio){
|
||||||
mediaPlayer.setAudioTrack(itemid);
|
mediaPlayer.setAudioTrack(itemid);
|
||||||
return true;
|
return true;
|
||||||
|
}else if(groupid == TrackType_Playlist){
|
||||||
|
Utils.playIndex = itemid;
|
||||||
|
play();
|
||||||
}
|
}
|
||||||
return false;
|
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"/>
|
android:focusable="true"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/subTracks"
|
android:id="@+id/subTracksBtn"
|
||||||
android:layout_width="@dimen/button_width"
|
android:layout_width="@dimen/button_width"
|
||||||
android:layout_height="@dimen/button_height"
|
android:layout_height="@dimen/button_height"
|
||||||
android:layout_marginLeft="@dimen/button_margin_left"
|
android:layout_marginLeft="@dimen/button_margin_left"
|
||||||
@ -141,13 +141,22 @@
|
|||||||
android:focusable="true"/>
|
android:focusable="true"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/audioTracks"
|
android:id="@+id/audioTracksBtn"
|
||||||
android:layout_width="@dimen/button_width"
|
android:layout_width="@dimen/button_width"
|
||||||
android:layout_height="@dimen/button_height"
|
android:layout_height="@dimen/button_height"
|
||||||
android:layout_marginLeft="@dimen/button_margin_left"
|
android:layout_marginLeft="@dimen/button_margin_left"
|
||||||
android:background="@drawable/shape_user_focus"
|
android:background="@drawable/shape_user_focus"
|
||||||
android:src="@drawable/ic_outline_audiotrack_48"
|
android:src="@drawable/ic_outline_audiotrack_48"
|
||||||
android:focusable="true" />
|
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>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user