mirror of
https://github.com/sifacaii/VlcJellyfin
synced 2025-06-03 00:58:06 -04:00
优化播放控制
This commit is contained in:
parent
ecb1c29d17
commit
22cc057347
@ -63,6 +63,8 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
private PopMenu scaleTypeMenu = null; //缩放菜单
|
private PopMenu scaleTypeMenu = null; //缩放菜单
|
||||||
private PopMenu speedMenu = null; //播放速率菜单
|
private PopMenu speedMenu = null; //播放速率菜单
|
||||||
|
|
||||||
|
private float speedRate[] = {0.5f, 1.0f, 1.5f, 2.0f}; //倍速播放列表
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -224,16 +226,16 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
//初始化缩放键
|
//初始化缩放键
|
||||||
scaleBtn.setOnClickListener(this);
|
scaleBtn.setOnClickListener(this);
|
||||||
scaleBtn.setText(Utils.getVlcScaleTypeName(mediaPlayer.getVideoScale().name()));
|
scaleBtn.setText(Utils.getVlcScaleTypeName(mediaPlayer.getVideoScale().name()));
|
||||||
scaleTypeMenu = new PopMenu(this,scaleBtn);
|
scaleTypeMenu = new PopMenu(this, scaleBtn);
|
||||||
MediaPlayer.ScaleType[] scaleTypes = MediaPlayer.ScaleType.values();
|
MediaPlayer.ScaleType[] scaleTypes = MediaPlayer.ScaleType.values();
|
||||||
for(int i=0;i<scaleTypes.length;i++){
|
for (int i = 0; i < scaleTypes.length; i++) {
|
||||||
PopMenu.menu menu = scaleTypeMenu.add(Type_Scale,i,i,Utils.getVlcScaleTypeName(scaleTypes[i].name()));
|
PopMenu.menu menu = scaleTypeMenu.add(Type_Scale, i, i, Utils.getVlcScaleTypeName(scaleTypes[i].name()));
|
||||||
final int Si = i;
|
final int Si = i;
|
||||||
menu.v.setOnClickListener(new View.OnClickListener() {
|
menu.v.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
scaleTypeMenu.dismiss();
|
scaleTypeMenu.dismiss();
|
||||||
if(mediaPlayer.getVideoScale() != scaleTypes[Si]){
|
if (mediaPlayer.getVideoScale() != scaleTypes[Si]) {
|
||||||
mediaPlayer.setVideoScale(scaleTypes[Si]);
|
mediaPlayer.setVideoScale(scaleTypes[Si]);
|
||||||
scaleBtn.setText(Utils.getVlcScaleTypeName(mediaPlayer.getVideoScale().name()));
|
scaleBtn.setText(Utils.getVlcScaleTypeName(mediaPlayer.getVideoScale().name()));
|
||||||
}
|
}
|
||||||
@ -243,7 +245,22 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
|
|
||||||
//初始化速率键
|
//初始化速率键
|
||||||
speedBtn.setOnClickListener(this);
|
speedBtn.setOnClickListener(this);
|
||||||
speedMenu = new PopMenu(this,speedBtn);
|
speedMenu = new PopMenu(this, speedBtn);
|
||||||
|
for (int i = 0; i < speedRate.length; i++) {
|
||||||
|
PopMenu.menu menu = speedMenu.add(Type_Speed, i, i, String.valueOf(speedRate[i]));
|
||||||
|
final int Fi = i;
|
||||||
|
menu.v.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
speedMenu.dismiss();
|
||||||
|
if (mediaPlayer.getRate() != speedRate[Fi]) {
|
||||||
|
mediaPlayer.setRate(speedRate[Fi]);
|
||||||
|
speedBtn.setText(String.valueOf(mediaPlayer.getRate()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initPlayListMenu() {
|
private void initPlayListMenu() {
|
||||||
@ -272,12 +289,12 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
private void initSubTrackMenu(MediaPlayer.TrackDescription[] subTrackList) {
|
private void initSubTrackMenu(MediaPlayer.TrackDescription[] subTrackList) {
|
||||||
subTrackMenu = new PopMenu(this, subTracksBtn);
|
subTrackMenu = new PopMenu(this, subTracksBtn);
|
||||||
for (int i = 0; i < subTrackList.length; i++) {
|
for (int i = 0; i < subTrackList.length; i++) {
|
||||||
PopMenu.menu m = subTrackMenu.add(Type_SubtitleTrack,i,i,subTrackList[i].name);
|
PopMenu.menu m = subTrackMenu.add(Type_SubtitleTrack, i, i, subTrackList[i].name);
|
||||||
m.v.setOnClickListener(new View.OnClickListener() {
|
m.v.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
subTrackMenu.dismiss();
|
subTrackMenu.dismiss();
|
||||||
if(m.id != mediaPlayer.getSpuTrack()){
|
if (m.id != mediaPlayer.getSpuTrack()) {
|
||||||
mediaPlayer.setSpuTrack(m.id);
|
mediaPlayer.setSpuTrack(m.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -289,12 +306,12 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
private void initAudioTrackMenu(MediaPlayer.TrackDescription[] audioTrackList) {
|
private void initAudioTrackMenu(MediaPlayer.TrackDescription[] audioTrackList) {
|
||||||
audioTrackMenu = new PopMenu(this, audioTracksBtn);
|
audioTrackMenu = new PopMenu(this, audioTracksBtn);
|
||||||
for (int i = 0; i < audioTrackList.length; i++) {
|
for (int i = 0; i < audioTrackList.length; i++) {
|
||||||
PopMenu.menu m = audioTrackMenu.add(Type_SubtitleTrack,i,i,audioTrackList[i].name);
|
PopMenu.menu m = audioTrackMenu.add(Type_SubtitleTrack, i, i, audioTrackList[i].name);
|
||||||
m.v.setOnClickListener(new View.OnClickListener() {
|
m.v.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
audioTrackMenu.dismiss();
|
audioTrackMenu.dismiss();
|
||||||
if(m.id != mediaPlayer.getAudioTrack()){
|
if (m.id != mediaPlayer.getAudioTrack()) {
|
||||||
mediaPlayer.setAudioTrack(m.id);
|
mediaPlayer.setAudioTrack(m.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -303,7 +320,6 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
audioTracksBtn.setOnClickListener(this);
|
audioTracksBtn.setOnClickListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示控制器
|
* 显示控制器
|
||||||
*/
|
*/
|
||||||
@ -507,8 +523,10 @@ public class VlcPlayerActivity extends BaseActivity implements MediaPlayer.Event
|
|||||||
audioTrackMenu.show(mediaPlayer.getAudioTrack());
|
audioTrackMenu.show(mediaPlayer.getAudioTrack());
|
||||||
} else if (id == R.id.playListBtn) {
|
} else if (id == R.id.playListBtn) {
|
||||||
playListMenu.show(Utils.playIndex);
|
playListMenu.show(Utils.playIndex);
|
||||||
} else if (id == R.id.scaleBtn){
|
} else if (id == R.id.scaleBtn) {
|
||||||
scaleTypeMenu.show(Utils.getVlcScaleTypeName(mediaPlayer.getVideoScale().name()));
|
scaleTypeMenu.show(Utils.getVlcScaleTypeName(mediaPlayer.getVideoScale().name()));
|
||||||
|
} else if (id == R.id.scaleBtn) {
|
||||||
|
speedMenu.show(String.valueOf(mediaPlayer.getRate()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -133,10 +133,14 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/speedBtn"
|
android:id="@+id/speedBtn"
|
||||||
android:layout_width="@dimen/button_width"
|
android:layout_width="wrap_content"
|
||||||
|
android:minWidth="@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:paddingLeft="10dp"
|
||||||
|
android:paddingRight="10dp"
|
||||||
|
android:gravity="center"
|
||||||
android:textSize="@dimen/title_size"
|
android:textSize="@dimen/title_size"
|
||||||
android:focusable="true" />
|
android:focusable="true" />
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user