ذخیره ی صوت در دیتابیس یا ... ؟
من تو برنامم چند تا متن دارم که از دیتابیس خونده میشن،میخوام صوتم واسشون بذارم،
حتما باید فایل های صوتی م رو تو دیتابیس و با استفاده از BLOB ذخیره کنم یا روش دیگه ای هم هست ؟
با تشکرِ قبلی
برای این کار چون بهتره برای کاهش حجم نرم افزار از فایل های روی سرور استفاده کنیم من از این راه استفاده میکنم
1- توی دیتابیستون یه فیلد به نام ahang اضافه کنید
2-اونو توی DBadpter معرفیش کنید و توی Database چگونگی set و get رو معین کنید مثلا مثل این
private String ahang;
public String getahang(){ return ahang; } public void Setahang(String ahang){ this.ahang = ahang; }
خوب حالا برای اینکه آهنگ رو پخش کنیم لینک آهنگ رو توی اون فیلد دیتابیسمون قرار میدم
توی فایل کدمون اول یه ProgressDialog میذاریم
dialog = new ProgressDialog(this);
dialog.setMessage("لطفا به اینترنت وصل شوید و منتظر بمانید");
dialog.setCancelable(true);
dialog.setInverseBackgroundForced(false);
حالا میریم سراغ اینکه اگه روی دکمه پلی کلیک شد چه اتفاقی بیوفته
play.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String url = database.getEzafi(); // your URL here
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(url);
}
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.prepareAsync();
dialog.show();
//You can show progress dialog here untill it prepared to play
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
//Now dismis progress dialog, Media palyer will start playing
mediaPlayer.start();
dialog.dismiss();
}
});
mediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int what, int extra) {
// dissmiss progress bar here. It will come here when MediaPlayer
// is not able to play file. You can show error message to user
return false;
}
});
تو کد بالا منبع مدیاپلیر رو فیلد دیتابیس قرار دادیم و لینک پخش رو از اون میگیره و پخش میکنه
برای توقف پخش هم دکمه توقف رو میسازیم
stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
stop();
}
});
public void stop() {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .