You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by bo...@apache.org on 2012/07/12 23:44:09 UTC
[12/14] android commit: removed audio load code from startPlaying to
a private function
removed audio load code from startPlaying to a private function
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/c8bf2f4c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/c8bf2f4c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/c8bf2f4c
Branch: refs/heads/master
Commit: c8bf2f4cb13adc9abeb15b97f41aa3f2137fe059
Parents: d16555e
Author: Lorin Beer <lo...@nitobi.com>
Authored: Sun Jun 17 22:37:12 2012 -0700
Committer: Lorin Beer <lo...@nitobi.com>
Committed: Sun Jun 17 22:37:12 2012 -0700
----------------------------------------------------------------------
framework/src/org/apache/cordova/AudioPlayer.java | 75 +++++++++-------
1 files changed, 41 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/c8bf2f4c/framework/src/org/apache/cordova/AudioPlayer.java
----------------------------------------------------------------------
diff --git a/framework/src/org/apache/cordova/AudioPlayer.java b/framework/src/org/apache/cordova/AudioPlayer.java
index 6437e2d..7fc1b93 100755
--- a/framework/src/org/apache/cordova/AudioPlayer.java
+++ b/framework/src/org/apache/cordova/AudioPlayer.java
@@ -207,40 +207,7 @@ public class AudioPlayer implements OnCompletionListener, OnPreparedListener, On
this.mPlayer = new MediaPlayer();
}
this.audioFile = file;
-
- // If streaming file
- if (this.isStreaming(file)) {
- this.mPlayer.setDataSource(file);
- this.mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- this.setState(MEDIA_STARTING);
- this.mPlayer.setOnPreparedListener(this);
- this.mPlayer.prepareAsync();
- }
-
- // If local file
- else {
- if (file.startsWith("/android_asset/")) {
- String f = file.substring(15);
- android.content.res.AssetFileDescriptor fd = this.handler.ctx.getActivity().getAssets().openFd(f);
- this.mPlayer.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
- }
- else {
- File fp = new File(file);
- if (fp.exists()) {
- FileInputStream fileInputStream = new FileInputStream(file);
- this.mPlayer.setDataSource(fileInputStream.getFD());
- }
- else {
- this.mPlayer.setDataSource("/sdcard/" + file);
- }
- }
- this.setState(MEDIA_STARTING);
- this.mPlayer.setOnPreparedListener(this);
- this.mPlayer.prepare();
-
- // Get duration
- this.duration = getDurationInSeconds();
- }
+ this.loadAudioFile(file);
} catch (Exception e) {
e.printStackTrace();
this.handler.sendJavascript("cordova.require('cordova/plugin/Media').onStatus('" + this.id + "', " + MEDIA_ERROR + ", { \"code\":" + MEDIA_ERR_ABORTED + "});");
@@ -462,4 +429,44 @@ public class AudioPlayer implements OnCompletionListener, OnPreparedListener, On
public void setVolume(float volume) {
this.mPlayer.setVolume(volume, volume);
}
+
+ /**
+ * load audio file
+ * @throws IOException
+ * @throws IllegalStateException
+ * @throws SecurityException
+ * @throws IllegalArgumentException
+ */
+ private void loadAudioFile(String file) throws IllegalArgumentException, SecurityException, IllegalStateException, IOException {
+ if (this.isStreaming(file)) {
+ this.mPlayer.setDataSource(file);
+ this.mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
+ this.setState(MEDIA_STARTING);
+ this.mPlayer.setOnPreparedListener(this);
+ this.mPlayer.prepareAsync();
+ }
+ else {
+ if (file.startsWith("/android_asset/")) {
+ String f = file.substring(15);
+ android.content.res.AssetFileDescriptor fd = this.handler.ctx.getActivity().getAssets().openFd(f);
+ this.mPlayer.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
+ }
+ else {
+ File fp = new File(file);
+ if (fp.exists()) {
+ FileInputStream fileInputStream = new FileInputStream(file);
+ this.mPlayer.setDataSource(fileInputStream.getFD());
+ }
+ else {
+ this.mPlayer.setDataSource("/sdcard/" + file);
+ }
+ }
+ this.setState(MEDIA_STARTING);
+ this.mPlayer.setOnPreparedListener(this);
+ this.mPlayer.prepare();
+
+ // Get duration
+ this.duration = getDurationInSeconds();
+ }
+ }
}