آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تغییر رینگتون از فایل های داخل پوشه asset

Shadow  10 سال پیش  10 سال پیش
0 0

آهنگ رو از اکتویتی دیگه گرفتم و میخوام به عنوان زنگ گوشی ازش استفاده کنم ولی بلد نیستم لطفا راهنمایی کنید؟

اینم کد؟

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

}

 

0 0
محسن جان داخل اون پرانتز یه مسیر فایل و اسم فایل رو می خواد (10 سال پیش)
0 0
توی کد اولی که گذاشتم موقعیت ولیست فایل ها رو دارم الان باید چی رو بزارم اونجا ای خدا دیوونه شدم (10 سال پیش)
پاسخ به سوال 
محسن علیزاده  10 سال پیش
0 0

مگه نمیخای از پوشه assets فایل لود کنی؟

به جای:

 android.resource://globalapps.funnyringtones/raw/sound_two.mp3

از این استفاده کن:

 file://android_asset/ringtone.mp3

 

0 0
اینو حل کردم می خوام آهنگ رو به عنوان زنگ گوشی انتخاب کنم . سوال بالا رو یه بار بخون محسن جان متوجه میشی (10 سال پیش)
پاسخ به سوال 
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");
}



}
0 0
ایول یه خط کدتون خیلی به دردم خورد محسن جان خیلی ممنون بلاخره تکمیلش کردم خیلی لذت بخش بود حال کردم (10 سال پیش)
پاسخ به سوال 
Shadow  10 سال پیش
0 0

دوستان بلاخره تمومش کردم ممنون از همه دوستایی که کمکم کردند انشالله آموزشش رو توی سایت می زارم

0 0
کی میزاری> (10 سال پیش)
0 0
منظورم اینه که چه موقع آموزشش رو توی سایت میزاری (10 سال پیش)
0 0
نمی دنم دوست عزیز فعلا درگیر این پروژه هستم هروقت تونستم میزارم (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .