بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تغییر رینگتون از فایل های داخل پوشه asset
آهنگ رو از اکتویتی دیگه گرفتم و میخوام به عنوان زنگ گوشی ازش استفاده کنم ولی بلد نیستم لطفا راهنمایی کنید؟
اینم کد؟
Intent i = getIntent();
Bundle b = i.getExtras();
myList = (ArrayList) b.getParcelableArrayList("songList");
position = b.getInt("pos");
btPlaye.setOnClickListener(this);
btStop.setOnClickListener(this);
btRing.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.btPlay:
Uri u = Uri.parse(myList.get(position).toString());
mp = new MediaPlayer();
AssetFileDescriptor afd;
try {
afd = getAssets().openFd(u.toString());
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mp.prepare();
mp.start();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//MediaPlayer player = new MediaPlayer();
break;
case R.id.btStop:
mp.stop();
mp.release();
break;
case R.id.seRing:
اینجا چی بنویسم!
break;
}
0
0
چرا کسی کمک نمی کنه مشکل چیه من چندتا سوال گذاشتم کسی اصلا جواب نمی ده خواهشا اگه بلدید دریغ نکنید . (10 سال پیش)
0
0
خواهشا کمک کنید (10 سال پیش)
0
0
جواب بدید لطفا (10 سال پیش)
0
0
ببخشید شرلاک عزیز، سایت پُر شده از سوالات تو، یک پروژه کامل رو سوال کردی تقریبا. به نظرم یک سورس آماده پیدا کن و اگر نیست سفارش بده با یه قیمت مناسب بخر. به نظر من خیلی دستت جلوتره اینجوری... (10 سال پیش)
+1
0
محسن جان من سوال زیاد کردم ولی خودمم به جواب رسیدم کسی که جواب نمیده خداوکیلی شد دوهفته من دارم روی این پروژه کار می کنم دیگه آخراشه ولی واقعا کسی جواب سوالات منو نداده چندتا راهنمایی بوده ولی به درد من نخورده ببخشید سوال زیاد می پرسم چون این پروژه ام باید تا آخر ماه منتشر بشه واسه همینه که ...
حالا ممنون میشم جواب بدید
بازم عذر می خوام از شما (10 سال پیش)
برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال
Shadow
10 سال پیش
0
0
این کد ست کردن رینگتون هست فقط نمی دونم بین این دو پرانتز چی بنویسم هرچی وارد می کنم خطا می گیره
File k = new File();
case R.id.seRing:
File k = new File(u, afd);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "My Song title");
values.put(MediaStore.MediaColumns.SIZE, 215454);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "Madonna");
values.put(MediaStore.Audio.Media.DURATION, 230);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
//Insert it into the database
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
Uri newUri = this.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(
Player.this,
RingtoneManager.TYPE_RINGTONE,
newUri
);
پاسخ به سوال
محسن علیزاده
10 سال پیش
0
0
از این متد استفاده کن خبرشو بده
public void setRingtone() {
String ringtoneuri = Environment.getExternalStorageDirectory().getAbsolutePath() + "/media/ringtone";
File file1 = new File(ringtoneuri);
file1.mkdirs();
File newSoundFile = new File(ringtoneuri, "myringtone.mp3");
Uri mUri = Uri.parse("android.resource://globalapps.funnyringtones/raw/sound_two.mp3");
ContentResolver mCr = this.getContentResolver();
AssetFileDescriptor soundFile;
try {
soundFile = mCr.openAssetFileDescriptor(mUri, "r");
} catch (FileNotFoundException e) {
soundFile = null;
}
try {
byte[] readData = new byte[1024];
FileInputStream fis = soundFile.createInputStream();
FileOutputStream fos = new FileOutputStream(newSoundFile);
int i = fis.read(readData);
while (i != -1) {
fos.write(readData, 0, i);
i = fis.read(readData);
}
fos.close();
} catch (IOException io) {
}
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, newSoundFile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "my ringtone");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.MediaColumns.SIZE, newSoundFile.length());
values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(newSoundFile.getAbsolutePath());
Uri newUri = mCr.insert(uri, values);
try {
Uri rUri = RingtoneManager.getValidRingtoneUri(this);
if (rUri != null)
ringtoneManager.setStopPreviousRingtone(true);
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_RINGTONE, newUri);
Toast.makeText(this, "New Rigntone set", Toast.LENGTH_SHORT).show();
} catch (Throwable t) {
Log.e("sanjay in catch", "catch exception"+e.getMessage());
}
}
پاسخ به سوال
محسن علیزاده
10 سال پیش
0
0
مگه نمیخای از پوشه assets فایل لود کنی؟
به جای:
android.resource://globalapps.funnyringtones/raw/sound_two.mp3
از این استفاده کن:
file://android_asset/ringtone.mp3
پاسخ به سوال
mohsen-jj
10 سال پیش
0
0
سلام .
من تو پروژه خودم آهنگهام رو توی assets ریختم و با این کد تنظیمش کردم :
در ضمن ، این کدها توی کلاس G من بودن به همین خاطر متود استاتیک هست .و همچنین کلاس HelperIo برای کپی کردن فایل هست چون اول باید آهنگ داخل گوشی کاربر ذخیره بشه . کد این کلاس توی فصل 19 آموزش های استاد هست اگه ندارید بگید تا براتون بذارم .
موفق باشید .
final static String DIR_SDCARD = Environment.getExternalStorageDirectory()
.getAbsolutePath();
final static String DIR_RINGTONES = DIR_SDCARD + "/Ringtones/";
public static void setRingtone(String musicName){
musicName=musicName+".mp3";
new File(DIR_RINGTONES)
.mkdirs();
File file = new File(
DIR_RINGTONES+musicName);
if (!file.exists()) {
AssetManager assetmanager = G.context.getAssets();
InputStream inputstream;
try {
inputstream = assetmanager.open(musicName);
HelperIO.copyFile(inputstream,
DIR_RINGTONES+musicName);
} catch (Exception e) { // TODO: handle exception }
}
}
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, musicName);
values.put(MediaStore.MediaColumns.SIZE,file.length());
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, R.string.app_name);
values.put(MediaStore.Audio.Media.DURATION, 230);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
try {
Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
context.getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + file.getAbsolutePath() + "\"", null);
Uri newUri = context.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(G.context,
RingtoneManager.TYPE_RINGTONE, newUri);
G.customToster("ringtone change successfully");
} catch (Exception e) {
// TODO: handle exception
G.toster("error");
}
}
پاسخ به سوال
Shadow
10 سال پیش
0
0
دوستان بلاخره تمومش کردم ممنون از همه دوستایی که کمکم کردند انشالله آموزشش رو توی سایت می زارم
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .