У меня есть список только с текстом, когда я нажимаю этот элемент песни. Это работает очень хорошо, но когда я нажимаю onItemLongClick()
, мне нужна эта песня в качестве мелодии звонка.Ссылочный ресурс ListView, заданный как мелодия звонка
Я скопировал код. Теперь моя проблема теперь, когда я нажимаю itemlongclick, результат - это «No se pudo asignar como ringtone» (не может назначаться в качестве мелодии звонка)
Все песни находятся в сырых ресурсах.
public class MainActivity extends Activity {
MediaPlayer mp = new MediaPlayer();
ListViewAdapter adapter;
int s1[] =
{
R.raw.el_tri_abuelita_soy_tu_nieto,
R.raw.el_tri_ahi_te_lo_lavas,
R.raw.el_tri_bajate_del_avion,
};
int position;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list30 = (ListView) findViewById(R.id.list);
ArrayList<String> items = new ArrayList<String>();
items.add("Abuelita soy tu nieto");
items.add("Ahi te lo lavas");
items.add("Bajate del avion");
adapter = new ListViewAdapter(this, items);
list30.setAdapter(adapter);
list30.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
method(position); //play de song normaly, this work well
}
});
Log.i("ramiro", "onClickListener");
list30.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if(saveas(R.raw.el_tri_abuelita_soy_tu_nieto, "examplename") == true)
Toast.makeText(getApplication(), "Se asigno como ringtone", Toast.LENGTH_SHORT).show();
else
Toast.makeText(getApplicationContext(), "No se pudo asignar como ringtone", Toast.LENGTH_SHORT).show(); //out over here
return false;
}
});
}
public boolean saveas(int ressound, String soundName)
{
byte[] buffer=null;
InputStream fIn = getBaseContext().getResources().openRawResource(ressound);
int size=0;
try {
size = fIn.available();
buffer = new byte[size];
fIn.read(buffer);
fIn.close();
} catch (IOException e) {
// TODO Auto-generated catch block
return false;
}
String path="/sdcard/media/audio/ringtones/";
String filename=soundName+".mp3";
boolean exists = (new File(path)).exists();
if (!exists){new File(path).mkdirs();}
FileOutputStream save;
try {
save = new FileOutputStream(path+filename);
save.write(buffer);
save.flush();
save.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
return false;
} catch (IOException e) {
// TODO Auto-generated catch block
return false;
}
Кстати это не мое полностью мой код, я просто отредактировал его по моим потребностям, я основывал его на этом http://www.stealthcopter.com/blog/2010/01/android-saving-a-sound-file-to-sd-from-resource-and-setting-as -ringtone/ –
hi @ user3180189 Я поставил код, но все еще не работал – user3225759