【问题标题】:Show toast if mp3 file there was not in SD card如果 SD 卡中没有 mp3 文件,则显示 toast
【发布时间】:2015-07-01 13:17:26
【问题描述】:

在此类中,从 sd 卡播放 mp3 文件,但如果 mp3 文件不可用 应用程序给予“强制关闭” 如果 SD 卡中没有 mp3(不下载)并返回上一个活动,我想要显示 toast 的 cods。请帮助我

@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);
}
}

【问题讨论】:

    标签: file mp3 sd-card toast


    【解决方案1】:

    在 IOException 捕获块中放置以下代码:

    Toast.makeText(context,'No mp3 file found',Toast.LENGTH_SHORT).show();
    this.finish()
    

    finish() 将完成当前活动并返回到上一个活动。

    【讨论】:

    • 表示您的平台不支持QCMediaPlayer。 QCMediaPlayer 提供扩展的 API 和接口,以在兼容的 Snapdragon 版本中获取和设置 DASH 协议的 MPD 属性。所以,这个错误应该不会影响正常情况下的媒体播放
    • 我只有在 android 5.0.2 中才有这个问题。低版本没问题
    • 在你的项目中使用这个QCMediaPlayer.java
    • 没有其他解决办法吗?
    猜你喜欢
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多