Show Media Volume Slider on the UI

  leftAm = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = leftAm.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    int curVolume = leftAm.getStreamVolume(AudioManager.STREAM_MUSIC);
    SeekBar volControl = (SeekBar)findViewById(R.id.leftVolume);
    volControl.setMax(maxVolume);

    volControl.setProgress(curVolume);
    volControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {


    @Override
    public void onStopTrackingTouch(SeekBar arg0) {
     // TODO Auto-generated method stub
    }

    @Override
    public void onStartTrackingTouch(SeekBar arg0) {
     // TODO Auto-generated method stub
    }

    @Override
    public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
     // TODO Auto-generated method stub
     leftAm.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
    }
   });  

xml:

<SeekBar
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/volumebar"
            android:max="100"
            android:paddingBottom="10dip"/>

http://stackoverflow.com/questions/9488117/android-show-media-volume-slider-on-the-ui

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
public class Player extends Application { private MediaPlayer mediaPlayer; @Override public void start(Stage primaryStage) throws Exception { // 创建UI界面 BorderPane root = new BorderPane(); // 创建媒体播放器 Media media = new Media(new File("video.mp4").toURI().toString()); mediaPlayer = new MediaPlayer(media); // 创建媒体展示组件 MediaView mediaView = new MediaView(mediaPlayer); root.setCenter(mediaView); // 创建控制面板 HBox controlBar = new HBox(10); controlBar.setPadding(new Insets(10)); // 创建播放/暂停按钮 Button playButton = new Button("播放"); playButton.setOnAction(event -> { if (mediaPlayer.getStatus() == MediaPlayer.Status.PLAYING) { mediaPlayer.pause(); playButton.setText("播放"); } else { mediaPlayer.play(); playButton.setText("暂停"); } }); // 创建音量调节器 Slider volumeSlider = new Slider(); volumeSlider.setMin(0); volumeSlider.setMax(1); volumeSlider.setValue(mediaPlayer.getVolume()); volumeSlider.setPrefWidth(100); volumeSlider.valueProperty().addListener(new InvalidationListener() { @Override public void invalidated(Observable observable) { mediaPlayer.setVolume(volumeSlider.getValue()); } }); // 创建音量标签 Label volumeLabel = new Label("音量:"); // 添加控件到控制面板 controlBar.getChildren().addAll(playButton, volumeLabel, volumeSlider); // 创建打开文件按钮 Button openFileButton = new Button("打开文件"); openFileButton.setOnAction(event -> { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("选择视频文件"); File file = fileChooser.showOpenDialog(primaryStage); if (file != null) { Media newMedia = new Media(file.toURI().toString()); mediaPlayer.stop(); mediaPlayer = new MediaPlayer(newMedia); mediaView.setMediaPlayer(mediaPlayer); playButton.setText("播放"); volumeSlider.setValue(mediaPlayer.getVolume()); } }); controlBar.getChildren().add(openFileButton); // 将控制面板添加到主界面 root.setBottom(controlBar); // 创建场景并显示 Scene scene = new Scene(root, 900, 560); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值