我有一個列表視圖與聲音項目。我需要,當一個項目很長時間按ES,將其設置爲鈴聲或從我的應用程序的原始聲音通知。我怎樣才能做到這一點?謝謝你從我這裏其他職位Android - 如何將歌曲設置爲來自原始文件夾的鈴聲或通知?
-1
A
回答
0
答案...
Set ringtone from res/raw folder
不能從資源設置的鈴聲。
RingtoneManager.setActualDefaultRingtoneUri需要設備中的鈴聲文件,並且Uri應該來自內容解析器。
File ring = new File("pathOfYourFile");
Uri path = MediaStore.Audio.Media.getContentUriForPath(ring.getAbsolutePath());
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(),RingtoneManager.TYPE_RINGTONE,路徑);
同時一定要添加權限
0
試試這個代碼
String name = "your_raw_audio_name";
File file = new File(Environment.getExternalStorageDirectory(),
"/myRingtonFolder/Audio/");
if (!file.exists()) {
file.mkdirs();
}
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/myRingtonFolder/Audio/";
File f = new File(path + "/", name + ".mp3");
Uri mUri = Uri.parse("android.resource://"
+ context.getPackageName() + "/raw/" + name);
ContentResolver mCr = context.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(f);
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, f.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, name);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.MediaColumns.SIZE, f.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, true);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(f
.getAbsolutePath());
Uri newUri = mCr.insert(uri, values);
try {
RingtoneManager.setActualDefaultRingtoneUri(context,
RingtoneManager.TYPE_RINGTONE, newUri);
Settings.System.putString(mCr, Settings.System.RINGTONE,
newUri.toString());
} catch (Throwable t) {
}
的更多細節
檢查這個link
+0
不能正常工作.... – user3437592
相關問題
- 1. 原始文件夾的直接路徑設置爲鈴聲Android
- 2. 如何從原始文件夾資源設置鈴聲
- 3. Android的書面文件問題設置歌曲作爲鈴聲
- 4. 將原始資源設置爲鈴聲
- 5. 設置使用從res /原始文件夾的MP3鈴聲
- 6. 如何設置原始音頻文件作爲鈴聲
- 7. android - 如何將MP3設置爲鈴聲
- 8. 無法設置鈴聲通知android
- 9. 是否可以將原始文件夾中的聲音設置爲鈴聲而不將其保存到SD卡?
- 10. 如何將mp3文件設置爲android鈴聲?
- 11. 如何在Android中將音頻文件設置爲鈴聲?
- 12. 如何在iTunes中設置來自歌曲的聲音本地通知?
- 13. Xamarin Android - 在資產文件夾中設置來自mp3的鈴聲
- 14. 在Android中設置原始資源作爲鈴聲
- 15. 設置.mp3文件作爲來自資產的鈴聲
- 16. 設置爲鈴聲android
- 17. 設置MP3爲鈴聲android?
- 18. 設置聲音作爲鈴聲或通知在Android應用程序
- 19. 設置SD卡文件的鈴聲通知
- 20. 如何在iPhone中將歌曲設置爲鬧鈴
- 21. 如何在iPhone中將tableview中的歌曲設置爲通知聲音?
- 22. 設置iphone/ipod內存歌曲爲鈴聲
- 23. 如何在UILocalNotfication中設置來自用戶鈴聲的聲音?
- 24. Android:將通知欄設置爲谷歌+
- 25. 設備中的鈴聲文件夾(DDMS)
- 26. 來自原始資源的自定義鈴聲的RingtonePreference
- 27. 設置音頻文件爲鈴聲
- 28. 爲來電設置隨機鈴聲
- 29. 系統設置將通知音量與鈴聲音量關聯
- 30. 如何使用鈴聲管理器在Android中設置鈴聲?
所以沒有什麼解決辦法? – user3437592