首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sd卡中用于mp3的Seekbar

sd卡中用于mp3的Seekbar
EN

Stack Overflow用户
提问于 2015-04-08 17:06:55
回答 2查看 474关注 0票数 1

此代码用于从原始文件夹读取mp3,但我希望将mp3文件更改为sd卡中的另一个文件。

的新代码,音乐播放但查找条不能正常工作,当我把它寻找回来时,第一个位置

代码语言:javascript
复制
public class MainActivity extends Activity implements OnClickListener {

SeekBar seek_bar;
Button play_button, pause_button;
MediaPlayer mediaPlayer;
TextView text_shown;
Handler seekHandler = new Handler();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getInit();
    seekUpdation();
}


public void getInit() {  
    seek_bar = (SeekBar) findViewById(R.id.seek_bar);
    play_button = (Button) findViewById(R.id.play_button);
    pause_button = (Button) findViewById(R.id.pause_button);
    text_shown = (TextView) findViewById(R.id.text_shown);
    play_button.setOnClickListener(this);
    pause_button.setOnClickListener(this);
    String filePath = Environment.getExternalStorageDirectory() + "/Android/music.mp3";
    mediaPlayer = new MediaPlayer();
    try {
        mediaPlayer.setDataSource(filePath);
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {

        }
    });
    mediaPlayer.prepareAsync();
    seek_bar.setMax(mediaPlayer.getDuration());
}

Runnable run = new Runnable() {

    @Override
    public void run() {
        seekUpdation();
    }
};

public void seekUpdation() {

    seek_bar.setProgress(mediaPlayer.getCurrentPosition());
    seekHandler.postDelayed(run, 1000);
    seek_bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

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

        }

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

        }

        @Override
        public void onProgressChanged(SeekBar seek_bar, int progress, boolean fromUser) {
            if(fromUser){ 
                mediaPlayer.seekTo(progress); 
                seek_bar.setProgress(progress);
            }

        }
    });
}

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

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
    if(fromUser){ 
        mediaPlayer.seekTo(progress); 
        seekBar.setProgress(progress);
    }
}


@Override
public void onBackPressed() {
    mediaPlayer.stop();
    finish();
}

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-16 12:25:28

把这条线挪开

代码语言:javascript
复制
seek_bar.setMax(mediaPlayer.getDuration());

之后转到seekUpdation()

代码语言:javascript
复制
seekHandler.postDelayed(run, 1000);
票数 0
EN

Stack Overflow用户

发布于 2015-04-08 17:19:51

替换

代码语言:javascript
复制
mediaPlayer = MediaPlayer.create(this, R.raw.my_file);

通过以下方式:

代码语言:javascript
复制
String filePath = Environment.getExternalStorageDirectory() + "/randomDirectory/yourFile.mp3";
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(filePath);
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        mediaPlayer.start();
    }
});
mediaPlayer.prepareAsync();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29521013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档