android - 如何使用 Android Media Player 搜索栏控制音频?

标签 android android-mediaplayer

我可以使用安卓媒体播放器播放音频文件。我可以显示进度条和附加的 2 个按钮来暂停和播放音轨。我的问题是我无法使用进度条控制轨道。我想播放音轨以根据将进度条拖动到的位置进行更新。

下面是我的代码

public class MyMediaPlayerView extends AppCompatActivity implements View.OnClickListener {

            /**
             * var for controller
             * restore timestamp today 12:11
             */
             SeekBar seek_bar;
             Button play_button, pause_button;
             MediaPlayer player;
             TextView text_shown;
             Handler seekHandler = new Handler();


            @Override
            protected void onCreate(Bundle savedInstanceState) {
                 super.onCreate(savedInstanceState);
                 setContentView(R.layout.activity_launch_webview);
                 getSupportActionBar().setDisplayHomeAsUpEnabled(true);

                 getInit();
                 seekUpdation();
             }

             Runnable run = new Runnable() {
                @Override public void run() {
                     seekUpdation();
                }
             };

             public void seekUpdation() {
                 seek_bar.setProgress(player.getCurrentPosition());
                 seekHandler.postDelayed(run, 1000);

                 onProgressChanged(seek_bar, seek_bar.getProgress());
             }

             @Override 
             public void onClick(View view) {
                  switch (view.getId()) {
                  case R.id.play_button: text_shown.setText("Playing...");         
                  player.start();
                  break; case R.id.pause_button: player.pause();
                  text_shown.setText("Paused...");
                  }
             }

             public void onProgressChanged(SeekBar seek_Bar, int progress,
                  boolean fromUser) {
                  player.seekTo(progress);
             }
    }

最佳答案

我是这样做的

seek_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                if(fromUser)
                    player.seekTo(progress);
            }
       @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });

关于android - 如何使用 Android Media Player 搜索栏控制音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35407578/

相关文章:

android - 媒体播放器、exoplayer 和音频流

android - 当应用程序被杀死时,c2dm 接收器不工作

android - Android 上 html 页面中的链接不起作用

android - 提交给 Web 服务器的希伯来语字符串未以希伯来语接收

Android getWidth、getHeight、getLeft、getRight 在 setScaleX()、setScaleY() 之后不正确

android - 共享应用声音(从原始文件夹)

android - Eclipse/ADT 没有创建 main.xml 文件

android - SeekTo 不会触发 MediaControllerCompat 中的 onPlaybackStateChanged

ANDROID_LOOP = true -- 如何避免 MediaPlayer 使用此元数据标签循环播放音频

java - 如何循环播放媒体播放器而不让声音相互重叠?