Java 在Parse.com android上播放音乐
所以我正在实现类似音乐播放列表的应用程序,我的音频作为mp3上传到Parse.com,我想检索这些音频Java 在Parse.com android上播放音乐,java,android,audio,parse-platform,parse-android-sdk,Java,Android,Audio,Parse Platform,Parse Android Sdk,所以我正在实现类似音乐播放列表的应用程序,我的音频作为mp3上传到Parse.com,我想检索这些音频 final Button btn = (Button) v.findViewById(R.id.button); final ParseFile fileObject = object.getParseFile("music"); if (fileObject != null) { fileObject.getDataInBackground(new Get
final Button btn = (Button) v.findViewById(R.id.button);
final ParseFile fileObject = object.getParseFile("music");
if (fileObject != null) {
fileObject.getDataInBackground(new GetDataCallback() {
@Override
public void done(byte[] bytes, com.parse.ParseException e) {
final String audioFileURL = fileObject.getUrl();
mediaPlayer = new MediaPlayer();
mediaPlayer.reset();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
try {
mediaPlayer.setDataSource(audioFileURL);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IllegalArgumentException e1) {
e1.printStackTrace();
}//end catch
catch (IOException e1) {
e1.printStackTrace();
}
}//end on click
}//end listener
);
}//end done
});//end get data
}//end if
这是我从Parse.com检索音乐的方式,但这需要花费大量时间,因此我有一个音频列表。。我想在后台下载一组音频。。因此,当我点击按钮时,音乐播放得很快。。任何帮助都将不胜感激 我现在没有时间去理解为什么你的代码不起作用,但是你可以在github上使用我的示例应用程序(刚刚提交),你应该解决你的问题……如果没有,请告诉我。请注意README.md 希望对你有帮助 编辑
这是我的存储库的重要部分
记录并保存:
String outputFile = Environment.getExternalStorageDirectory().
getAbsolutePath() + "/rumor.mp3";
myRecorder = new MediaRecorder();
myRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
myRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myRecorder.setOutputFile(outputFile);
然后,开始录音
try {
myRecorder.prepare();
myRecorder.start();
} catch (IllegalStateException e) {
// start:it is called before prepare()
// prepare: it is called after start() or before setOutputFormat()
e.printStackTrace();
} catch (IOException e) {
// prepare() fails
e.printStackTrace();
}
停止录制时,请按以下方式将其保存在Parse.com上:
FileInputStream fileInputStream = null;
File fileObj = new File(outputFile);
byte[] data = new byte[(int) fileObj.length()];
try {
//convert file into array of bytes
fileInputStream = new FileInputStream(fileObj);
fileInputStream.read(data);
fileInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
ParseFile parseAudioFile = new ParseFile("audiofile.mp3", data);
parseAudioFile.saveInBackground();
ParseObject parseObject = new ParseObject("AudioFileClass");
parseObject.put("audiofile", parseAudioFile);
parseObject.saveInBackground(new SaveCallback() {
public void done(ParseException e) {
if (e == null) {
Toast.makeText(getApplicationContext(),"Audio file saved successfully", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(),"Error: audio file not saved", Toast.LENGTH_SHORT).show();
}
}
});
从Parse.com检索和播放非常简单,我使用了ParseQueryAdapter。这是您获取mp3文件并播放它的部分:
ParseFile descr = object.getParseFile("audiofile");
if (descr != null) {
String audioFileURL = descr.getUrl();
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(audioFileURL);
mediaPlayer.prepare();
mediaPlayer.start();
}
...
...
@Kurtis92我认为你的代码也面临同样的问题,打开音频需要很长时间。。