Java 如何在音频播放器主活动代码中添加SharedReference
我正在开发android音乐播放器,但不知道如何在代码中使用SharedReference。Java 如何在音频播放器主活动代码中添加SharedReference,java,android,sharedpreferences,Java,Android,Sharedpreferences,我正在开发android音乐播放器,但不知道如何在代码中使用SharedReference。 我想在音乐播放器上保存最后一首歌,以便下次打开应用程序时显示播放器上的最后一首音频。但现在它失去了播放器上一首歌。这是我的项目代码。这里给出了URI代码 private void initPlayer(final int position) { if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { mMe
我想在音乐播放器上保存最后一首歌,以便下次打开应用程序时显示播放器上的最后一首音频。但现在它失去了播放器上一首歌。这是我的项目代码。这里给出了URI代码
private void initPlayer(final int position) {
if (mMediaPlayer != null && mMediaPlayer.isPlaying()) {
mMediaPlayer.reset();
}
String sname = mySongs.get(position).getName().replace(".mp3", "").replace(".m4a", "").replace(".wav", "").replace(".m4b", "");
songTitle.setText(sname);
Uri songResourceUri = Uri.parse(mySongs.get(position).toString());
mMediaPlayer = MediaPlayer.create(getApplicationContext(), songResourceUri); // create and load mediaplayer with song resources
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
String totalTime = createTimeLabel(mMediaPlayer.getDuration());
totTime.setText(totalTime);
mSeekBar.setMax(mMediaPlayer.getDuration());
mMediaPlayer.start();
playIcon.setBackgroundResource(R.drawable.stop);
}
});
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
int curSongPoition = position;
// code to repeat songs until the
if (curSongPoition < mySongs.size() - 1) {
curSongPoition++;
initPlayer(curSongPoition);
} else {
curSongPoition = 0;
initPlayer(curSongPoition);
}
}
});
private void initPlayer(最终整数位置){
if(mMediaPlayer!=null&&mMediaPlayer.isPlaying()){
mmediplayer.reset();
}
字符串sname=mySongs.get(position.getName().replace(“.mp3”,”).replace(“.m4a”,”).replace(“.wav”,”).replace(“.m4b”,”);
songTitle.setText(sname);
Uri songResourceUri=Uri.parse(mySongs.get(position.toString());
mMediaPlayer=MediaPlayer.create(getApplicationContext(),songResourceUri);//使用歌曲资源创建并加载MediaPlayer
mmediplayer.setOnPreparedListener(新的MediaPlayer.OnPreparedListener(){
@凌驾
已准备好公开作废(MediaPlayer mp){
字符串totalTime=createTimeLabel(mmediplayer.getDuration());
totTime.setText(totalTime);
mSeekBar.setMax(mmediplayer.getDuration());
mmediplayer.start();
playIcon.setBackgroundResource(R.drawable.stop);
}
});
mmediplayer.setOnCompletionListener(新的MediaPlayer.OnCompletionListener(){
@凌驾
完成时的公共作废(MediaPlayer mp){
int curSongPoition=位置;
//重复歌曲的代码,直到
if(光标位置
使用下面的类存储共享首选项
public class SharedPreferencesUtils {
private static final String TAG = SharedPreferencesUtils.class.getSimpleName();
/* store lastplayed song*/
public static void setPreviousSongInSharedPrefs(Context context, String songName) {
try {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor sharedPrefsEditor = sharedPrefs.edit();
sharedPrefsEditor.putString("PREVIOUS_SONG" , songName);
sharedPrefsEditor.apply();
} catch (Exception e) {
e.printStackTrace();
}
}
/* get store previous song*/
public static String getPreviousSongFromSharedPrefs(Context context) {
String previousSong = "";
try {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
previousSong = sharedPrefs.getString("PREVIOUS_SONG" , "default value");
return previousSong;
} catch (Exception e) {
e.printStackTrace();
}
return previousSong;
}
}
要调用相应的方法,请使用以下代码:
存储歌曲名称:SharedPreferencesUtils.setPreviousSongInSharedPrefs(getContext(),songName);
要获取以前的歌曲名称:
String songname=SharedPreferencesUtils.getPreviousSongFromSharedPrefs(getContext());
使用下面的类存储共享首选项
public class SharedPreferencesUtils {
private static final String TAG = SharedPreferencesUtils.class.getSimpleName();
/* store lastplayed song*/
public static void setPreviousSongInSharedPrefs(Context context, String songName) {
try {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor sharedPrefsEditor = sharedPrefs.edit();
sharedPrefsEditor.putString("PREVIOUS_SONG" , songName);
sharedPrefsEditor.apply();
} catch (Exception e) {
e.printStackTrace();
}
}
/* get store previous song*/
public static String getPreviousSongFromSharedPrefs(Context context) {
String previousSong = "";
try {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
previousSong = sharedPrefs.getString("PREVIOUS_SONG" , "default value");
return previousSong;
} catch (Exception e) {
e.printStackTrace();
}
return previousSong;
}
}
要调用相应的方法,请使用以下代码:
存储歌曲名称:SharedPreferencesUtils.setPreviousSongInSharedPrefs(getContext(),songName);
要获取上一首歌曲的名称:String songname=SharedPreferencesUtils.getPreviousSongFromSharedPrefs(getContext());
//方法从SharedReferences获取存储的歌曲
//方法来存储以前的歌曲
publicstaticvoidset\u song\u路径(上下文,字符串路径){
SharedReferences.Editor saver=act.getSharedReferences(“SharedReferName”,context.MODE_PRIVATE).edit();
putString(“song_path”,path);
commit();
}
私人玩家(最终积分位置){
if(mMediaPlayer!=null&&mMediaPlayer.isPlaying()){
mmediplayer.reset();
}
字符串sname=mySongs.get(position.getName().replace(“.mp3”,”).replace(“.m4a”,”).replace(“.wav”,”).replace(“.m4b”,”);
songTitle.setText(sname);
Uri songResourceUri=Uri.parse(mySongs.get(position.toString());
设置歌曲路径(您的歌曲上下文,songResourceUri.toString());//这是为了保存
mMediaPlayer=MediaPlayer.create(getApplicationContext(),songResourceUri);//使用歌曲资源创建并加载MediaPlayer
mmediplayer.setOnPreparedListener(新的MediaPlayer.OnPreparedListener(){
@凌驾
已准备好公开作废(MediaPlayer mp){
字符串totalTime=createTimeLabel(mmediplayer.getDuration());
totTime.setText(totalTime);
mSeekBar.setMax(mmediplayer.getDuration());
mmediplayer.start();
playIcon.setBackgroundResource(R.drawable.stop);
}
});
mmediplayer.setOnCompletionListener(新的MediaPlayer.OnCompletionListener(){
@凌驾
完成时的公共作废(MediaPlayer mp){
int curSongPoition=位置;
//重复歌曲的代码,直到
if(光标位置
要检索歌曲路径,请为Uri调用Uri savedsongResourceUri=Uri.parse(歌曲路径(您的上下文));
//方法从SharedReferences获取存储的歌曲
//方法来存储以前的歌曲
publicstaticvoidset\u song\u路径(上下文,字符串路径){
SharedReferences.Editor saver=act.getSharedReferences(“SharedReferName”,context.MODE_PRIVATE).edit();
putString(“song_path”,path);
commit();
}
私人玩家(最终积分位置){
if(mMediaPlayer!=null&&mMediaPlayer.isPlaying()){
mmediplayer.reset();
}
字符串sname=mySongs.get(position.getName().replace(“.mp3”,”).replace(“.m4a”,”).replace(“.wav”,”).replace(“.m4b”,”);
songTitle.setText(sname);
Uri songResourceUri=Uri.parse(mySongs.get(position.toString());
设置歌曲路径(您的歌曲上下文,songResourceUri.toString());//这是为了保存
mMediaPlayer=MediaPlayer.create(getApplicationContext(),songResourceUri);//使用歌曲资源创建并加载MediaPlayer
mmediplayer.setOnPreparedListener(新的MediaPlayer.OnPreparedListener(){
@凌驾
已准备好公开作废(MediaPlayer mp){
字符串totalTime=createTimeLabel(mmediplayer.getDuration());
totTime.setText(totalTime);
mSeekBar.setMax(mmediplayer.getDuration());
mmediplayer.start();
playIcon.setBackgroundResource(R.drawable.stop);
}
});
mmediplayer.setOnCompletionListene
public static void set_song_path(Context context, String path) {
SharedPreferences.Editor saver = act.getSharedPreferences("SHAREDpREFname", context.MODE_PRIVATE).edit();
saver.putString("song_path", path);
saver.commit();
}
private void initPlayer(final int position) {
if (mMediaPlayer != null && mMediaPlayer.isPlaying()) {
mMediaPlayer.reset();
}
String sname = mySongs.get(position).getName().replace(".mp3", "").replace(".m4a", "").replace(".wav", "").replace(".m4b", "");
songTitle.setText(sname);
Uri songResourceUri = Uri.parse(mySongs.get(position).toString());
set_song_path(your_context,songResourceUri.toString());//this is to save
mMediaPlayer = MediaPlayer.create(getApplicationContext(), songResourceUri); // create and load mediaplayer with song resources
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
String totalTime = createTimeLabel(mMediaPlayer.getDuration());
totTime.setText(totalTime);
mSeekBar.setMax(mMediaPlayer.getDuration());
mMediaPlayer.start();
playIcon.setBackgroundResource(R.drawable.stop);
}
});
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
int curSongPoition = position;
// code to repeat songs until the
if (curSongPoition < mySongs.size() - 1) {
curSongPoition++;
initPlayer(curSongPoition);
} else {
curSongPoition = 0;
initPlayer(curSongPoition);
}
}
});
}