cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From i..@apache.org
Subject [3/3] git commit: CB-6521: Remove development branch
Date Fri, 25 Apr 2014 18:14:41 GMT
CB-6521: Remove development branch


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/commit/bffdff79
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/tree/bffdff79
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/diff/bffdff79

Branch: refs/heads/dev
Commit: bffdff7952b30149ef22524482874b87cb1fcc63
Parents: 3488752
Author: Ian Clelland <iclelland@chromium.org>
Authored: Fri Apr 25 14:09:47 2014 -0400
Committer: Ian Clelland <iclelland@chromium.org>
Committed: Fri Apr 25 14:09:47 2014 -0400

----------------------------------------------------------------------
 LICENSE                       | 202 ----------
 NOTICE                        |   5 -
 README.md                     |   2 +
 RELEASENOTES.md               |  71 ----
 doc/index.md                  | 492 ------------------------
 plugin.xml                    | 162 --------
 src/android/AudioHandler.java | 376 -------------------
 src/android/AudioPlayer.java  | 555 ---------------------------
 src/android/FileHelper.java   |  38 --
 src/blackberry10/index.js     | 237 ------------
 src/ios/CDVSound.h            | 116 ------
 src/ios/CDVSound.m            | 743 -------------------------------------
 src/tizen/MediaProxy.js       | 223 -----------
 src/ubuntu/media.cpp          | 128 -------
 src/ubuntu/media.h            | 267 -------------
 src/windows8/MediaProxy.js    | 183 ---------
 src/wp/AudioPlayer.cs         | 647 --------------------------------
 src/wp/Media.cs               | 590 -----------------------------
 www/Media.js                  | 195 ----------
 www/MediaError.js             |  55 ---
 20 files changed, 2 insertions(+), 5285 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 7a4a3ea..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/NOTICE
----------------------------------------------------------------------
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index 8ec56a5..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Cordova
-Copyright 2012 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index bacd84b..18fce04 100644
--- a/README.md
+++ b/README.md
@@ -20,3 +20,5 @@
 # org.apache.cordova.media
 
 Plugin documentation: [doc/index.md](doc/index.md)
+
+This is `dev` - the deprecated development branch of this plugin; development of this plugin has moved to the `master` branch

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/RELEASENOTES.md
----------------------------------------------------------------------
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
deleted file mode 100644
index bed7849..0000000
--- a/RELEASENOTES.md
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-# http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
--->
-# Release Notes
-
-### 0.2.1 (Sept 5, 2013)
-* CB-4432 copyright notice change
-
-### 0.2.3 (Sept 25, 2013)
-* CB-4889 bumping&resetting version
-* [windows8] commandProxy was moved
-* CB-4889 renaming references
-* CB-4889 renaming org.apache.cordova.core.media to org.apache.cordova.media
-* [CB-4847] iOS 7 microphone access requires user permission - if denied, CDVCapture, CDVSound does not handle it properly
-* Rename CHANGELOG.md -> RELEASENOTES.md
-* [CB-4799] Fix incorrect JS references within native code on Android & iOS
-* Fix compiler/lint warnings
-* Rename plugin id from AudioHandler -> media
-* [CB-4763] Remove reference to cordova-android's FileHelper.
-* [CB-4752] Incremented plugin version on dev branch.
-
-### 0.2.4 (Oct 9, 2013)
-* [CB-4928] plugin-media doesn't load on windows8
-* [CB-4915] Incremented plugin version on dev branch.
-
-### 0.2.5 (Oct 28, 2013)
-* CB-5128: add repo + issue tag to plugin.xml for media plugin
-* [CB-5010] Incremented plugin version on dev branch.
-
- 
-### 0.2.6 (Dec 4, 2013)
-* [ubuntu] specify policy_group
-* add ubuntu platform
-* Added amazon-fireos platform. Change to use amazon-fireos as a platform if the user agent string contains 'cordova-amazon-fireos'
-
-### 0.2.7 (Jan 02, 2014)
-* CB-5658 Add doc/index.md for Media plugin
-* Adding READ_PHONE_STATE to the plugin permissions
-
-### 0.2.8 (Feb 05, 2014)
-* Add preliminary support for Tizen.
-* [CB-4755] Fix crash in Media.setVolume on iOS
-
-### 0.2.9 (Feb 26, 2014)
-* CB-6051 Update media plugin to work with new cdvfile:// urls
-* CB-5748 Make sure that Media.onStatus is called when recording is started.
-
-### 0.2.10 (Apr 17, 2014)
-* CB-6422: [windows8] use cordova/exec/proxy
-* CB-6212: [iOS] fix warnings compiled under arm64 64-bit
-* CB-6225: Specify plugin dependency on File plugin 1.0.1
-* CB-6460: Update license headers
-* CB-6465: Add license headers to Tizen code
-* Add NOTICE file

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/doc/index.md
----------------------------------------------------------------------
diff --git a/doc/index.md b/doc/index.md
deleted file mode 100644
index 12957eb..0000000
--- a/doc/index.md
+++ /dev/null
@@ -1,492 +0,0 @@
-<!---
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
--->
-
-# org.apache.cordova.media
-
-This plugin provides the ability to record and play back audio files on a device.
-
-__NOTE__: The current implementation does not adhere to a W3C
-specification for media capture, and is provided for convenience only.
-A future implementation will adhere to the latest W3C specification
-and may deprecate the current APIs.
-
-## Installation
-
-    cordova plugin add org.apache.cordova.media
-
-## Supported Platforms
-
-- Android
-- BlackBerry 10
-- iOS
-- Windows Phone 7 and 8
-- Tizen
-- Windows 8
-
-## Windows Phone Quirks
-
-- Only one media file can be played back at a time.
-
-- There are strict restrictions on how your application interacts with other media. See the [Microsoft documentation for details][url].
-
-[url]: http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh184838(v=vs.92).aspx
-
-## Media
-
-    var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
-
-### Parameters
-
-- __src__: A URI containing the audio content. _(DOMString)_
-
-- __mediaSuccess__: (Optional) The callback that executes after a `Media` object has completed the current play, record, or stop action. _(Function)_
-
-- __mediaError__: (Optional) The callback that executes if an error occurs. _(Function)_
-
-- __mediaStatus__: (Optional) The callback that executes to indicate status changes. _(Function)_
-
-### Constants
-
-The following constants are reported as the only parameter to the
-`mediaStatus` callback:
-
-- `Media.MEDIA_NONE`     = 0;
-- `Media.MEDIA_STARTING` = 1;
-- `Media.MEDIA_RUNNING`  = 2;
-- `Media.MEDIA_PAUSED`   = 3;
-- `Media.MEDIA_STOPPED`  = 4;
-
-### Methods
-
-- `media.getCurrentPosition`: Returns the current position within an audio file.
-
-- `media.getDuration`: Returns the duration of an audio file.
-
-- `media.play`: Start or resume playing an audio file.
-
-- `media.pause`: Pause playback of an audio file.
-
-- `media.release`: Releases the underlying operating system's audio resources.
-
-- `media.seekTo`: Moves the position within the audio file.
-
-- `media.setVolume`: Set the volume for audio playback.
-
-- `media.startRecord`: Start recording an audio file.
-
-- `media.stopRecord`: Stop recording an audio file.
-
-- `media.stop`: Stop playing an audio file.
-
-### Additional ReadOnly Parameters
-
-- __position__: The position within the audio playback, in seconds.
-    - Not automatically updated during play; call `getCurrentPosition` to update.
-
-- __duration__: The duration of the media, in seconds.
-
-
-## media.getCurrentPosition
-
-Returns the current position within an audio file.  Also updates the `Media` object's `position` parameter.
-
-    media.getCurrentPosition(mediaSuccess, [mediaError]);
-
-### Parameters
-
-- __mediaSuccess__: The callback that is passed the current position in seconds.
-
-- __mediaError__: (Optional) The callback to execute if an error occurs.
-
-### Quick Example
-
-    // Audio player
-    //
-    var my_media = new Media(src, onSuccess, onError);
-
-    // Update media position every second
-    var mediaTimer = setInterval(function () {
-        // get media position
-        my_media.getCurrentPosition(
-            // success callback
-            function (position) {
-                if (position > -1) {
-                    console.log((position) + " sec");
-                }
-            },
-            // error callback
-            function (e) {
-                console.log("Error getting pos=" + e);
-            }
-        );
-    }, 1000);
-
-
-## media.getDuration
-
-Returns the duration of an audio file in seconds. If the duration is unknown, it returns a value of -1.
-
-
-    media.getDuration();
-
-### Quick Example
-
-    // Audio player
-    //
-    var my_media = new Media(src, onSuccess, onError);
-
-    // Get duration
-    var counter = 0;
-    var timerDur = setInterval(function() {
-        counter = counter + 100;
-        if (counter > 2000) {
-            clearInterval(timerDur);
-        }
-        var dur = my_media.getDuration();
-        if (dur > 0) {
-            clearInterval(timerDur);
-            document.getElementById('audio_duration').innerHTML = (dur) + " sec";
-        }
-    }, 100);
-
-
-## media.pause
-
-Pauses playing an audio file.
-
-    media.pause();
-
-
-### Quick Example
-
-    // Play audio
-    //
-    function playAudio(url) {
-        // Play the audio file at url
-        var my_media = new Media(url,
-            // success callback
-            function () { console.log("playAudio():Audio Success"); },
-            // error callback
-            function (err) { console.log("playAudio():Audio Error: " + err); }
-        );
-
-        // Play audio
-        my_media.play();
-
-        // Pause after 10 seconds
-        setTimeout(function () {
-            media.pause();
-        }, 10000);
-    }
-
-
-## media.play
-
-Starts or resumes playing an audio file.
-
-    media.play();
-
-
-### Quick Example
-
-    // Play audio
-    //
-    function playAudio(url) {
-        // Play the audio file at url
-        var my_media = new Media(url,
-            // success callback
-            function () {
-                console.log("playAudio():Audio Success");
-            },
-            // error callback
-            function (err) {
-                console.log("playAudio():Audio Error: " + err);
-            }
-        );
-        // Play audio
-        my_media.play();
-    }
-
-
-### iOS Quirks
-
-- __numberOfLoops__: Pass this option to the `play` method to specify
-  the number of times you want the media file to play, e.g.:
-
-        var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
-        myMedia.play({ numberOfLoops: 2 })
-
-- __playAudioWhenScreenIsLocked__: Pass in this option to the `play`
-  method to specify whether you want to allow playback when the screen
-  is locked.  If set to `true` (the default value), the state of the
-  hardware mute button is ignored, e.g.:
-
-        var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
-        myMedia.play({ playAudioWhenScreenIsLocked : false })
-
-- __order of file search__: When only a file name or simple path is
-  provided, iOS searches in the `www` directory for the file, then in
-  the application's `documents/tmp` directory:
-
-        var myMedia = new Media("audio/beer.mp3")
-        myMedia.play()  // first looks for file in www/audio/beer.mp3 then in <application>/documents/tmp/audio/beer.mp3
-
-## media.release
-
-Releases the underlying operating system's audio resources.
-This is particularly important for Android, since there are a finite amount of
-OpenCore instances for media playback. Applications should call the `release`
-function for any `Media` resource that is no longer needed.
-
-    media.release();
-
-
-### Quick Example
-
-    // Audio player
-    //
-    var my_media = new Media(src, onSuccess, onError);
-
-    my_media.play();
-    my_media.stop();
-    my_media.release();
-
-
-## media.seekTo
-
-Sets the current position within an audio file.
-
-    media.seekTo(milliseconds);
-
-### Parameters
-
-- __milliseconds__: The position to set the playback position within the audio, in milliseconds.
-
-
-### Quick Example
-
-    // Audio player
-    //
-    var my_media = new Media(src, onSuccess, onError);
-        my_media.play();
-    // SeekTo to 10 seconds after 5 seconds
-    setTimeout(function() {
-        my_media.seekTo(10000);
-    }, 5000);
-
-
-### BlackBerry 10 Quirks
-
-- Not supported on BlackBerry OS 5 devices.
-
-## media.setVolume
-
-Set the volume for an audio file.
-
-    media.setVolume(volume);
-
-### Parameters
-
-- __volume__: The volume to set for playback.  The value must be within the range of 0.0 to 1.0.
-
-### Supported Platforms
-
-- Android
-- iOS
-
-### Quick Example
-
-    // Play audio
-    //
-    function playAudio(url) {
-        // Play the audio file at url
-        var my_media = new Media(url,
-            // success callback
-            function() {
-                console.log("playAudio():Audio Success");
-            },
-            // error callback
-            function(err) {
-                console.log("playAudio():Audio Error: "+err);
-        });
-
-        // Play audio
-        my_media.play();
-
-        // Mute volume after 2 seconds
-        setTimeout(function() {
-            my_media.setVolume('0.0');
-        }, 2000);
-
-        // Set volume to 1.0 after 5 seconds
-        setTimeout(function() {
-            my_media.setVolume('1.0');
-        }, 5000);
-    }
-
-
-## media.startRecord
-
-Starts recording an audio file.
-
-    media.startRecord();
-
-### Supported Platforms
-
-- Android
-- iOS
-- Windows Phone 7 and 8
-- Windows 8
-
-### Quick Example
-
-    // Record audio
-    //
-    function recordAudio() {
-        var src = "myrecording.mp3";
-        var mediaRec = new Media(src,
-            // success callback
-            function() {
-                console.log("recordAudio():Audio Success");
-            },
-
-            // error callback
-            function(err) {
-                console.log("recordAudio():Audio Error: "+ err.code);
-            });
-
-        // Record audio
-        mediaRec.startRecord();
-    }
-
-
-### Android Quirks
-
-- Android devices record audio in Adaptive Multi-Rate format. The specified file should end with a _.amr_ extension.
-
-### iOS Quirks
-
-- iOS only records to files of type _.wav_ and returns an error if the file name extension is not correct.
-
-- If a full path is not provided, the recording is placed in the application's `documents/tmp` directory. This can be accessed via the `File` API using `LocalFileSystem.TEMPORARY`. Any subdirectory specified at record time must already exist.
-
-- Files can be recorded and played back using the documents URI:
-
-        var myMedia = new Media("documents://beer.mp3")
-
-### Tizen Quirks
-
-- Not supported on Tizen devices.
-
-## media.stop
-
-Stops playing an audio file.
-
-    media.stop();
-
-### Quick Example
-
-    // Play audio
-    //
-    function playAudio(url) {
-        // Play the audio file at url
-        var my_media = new Media(url,
-            // success callback
-            function() {
-                console.log("playAudio():Audio Success");
-            },
-            // error callback
-            function(err) {
-                console.log("playAudio():Audio Error: "+err);
-            }
-        );
-
-        // Play audio
-        my_media.play();
-
-        // Pause after 10 seconds
-        setTimeout(function() {
-            my_media.stop();
-        }, 10000);
-    }
-
-
-## media.stopRecord
-
-Stops recording an audio file.
-
-    media.stopRecord();
-
-### Supported Platforms
-
-- Android
-- iOS
-- Windows Phone 7 and 8
-- Windows 8
-
-### Quick Example
-
-    // Record audio
-    //
-    function recordAudio() {
-        var src = "myrecording.mp3";
-        var mediaRec = new Media(src,
-            // success callback
-            function() {
-                console.log("recordAudio():Audio Success");
-            },
-
-            // error callback
-            function(err) {
-                console.log("recordAudio():Audio Error: "+ err.code);
-            }
-        );
-
-        // Record audio
-        mediaRec.startRecord();
-
-        // Stop recording after 10 seconds
-        setTimeout(function() {
-            mediaRec.stopRecord();
-        }, 10000);
-    }
-
-
-### Tizen Quirks
-
-- Not supported on Tizen devices.
-
-## MediaError
-
-A `MediaError` object is returned to the `mediaError` callback
-function when an error occurs.
-
-### Properties
-
-- __code__: One of the predefined error codes listed below.
-
-- __message__: An error message describing the details of the error.
-
-### Constants
-
-- `MediaError.MEDIA_ERR_ABORTED`
-- `MediaError.MEDIA_ERR_NETWORK`
-- `MediaError.MEDIA_ERR_DECODE`
-- `MediaError.MEDIA_ERR_NONE_SUPPORTED`
-

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
deleted file mode 100644
index 9303987..0000000
--- a/plugin.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-
-<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
-xmlns:android="http://schemas.android.com/apk/res/android"
-id="org.apache.cordova.media"
-    version="0.2.11-dev">
-
-    <name>Media</name>
-    <description>Cordova Media Plugin</description>
-    <license>Apache 2.0</license>
-    <keywords>cordova,media</keywords>
-    <repo>https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git</repo>
-    <issue>https://issues.apache.org/jira/browse/CB/component/12320647</issue>
-    
-    <dependency id="org.apache.cordova.file" version="1.0.1" />
-
-    <js-module src="www/MediaError.js" name="MediaError">
-        <clobbers target="window.MediaError" />
-    </js-module>
-    
-    <js-module src="www/Media.js" name="Media">
-        <clobbers target="window.Media" />
-    </js-module>
-    
-    <!-- android -->
-    <platform name="android">
-        <config-file target="res/xml/config.xml" parent="/*">
-            <feature name="Media" >
-                <param name="android-package" value="org.apache.cordova.media.AudioHandler"/>
-            </feature>
-        </config-file>
-        
-        <config-file target="AndroidManifest.xml" parent="/*">
-            <uses-permission android:name="android.permission.RECORD_AUDIO" />
-            <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
-            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-            <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-        </config-file>
-        
-        <source-file src="src/android/AudioHandler.java" target-dir="src/org/apache/cordova/media" />
-        <source-file src="src/android/AudioPlayer.java" target-dir="src/org/apache/cordova/media" />
-        <source-file src="src/android/FileHelper.java" target-dir="src/org/apache/cordova/media" />
-     </platform>
-     
-     <!-- amazon-fireos -->
-    <platform name="amazon-fireos">
-        <config-file target="res/xml/config.xml" parent="/*">
-            <feature name="Media" >
-                <param name="android-package" value="org.apache.cordova.media.AudioHandler"/>
-            </feature>
-        </config-file>
-        
-        <config-file target="AndroidManifest.xml" parent="/*">
-            <uses-permission android:name="android.permission.RECORD_AUDIO" />
-            <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
-            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-        </config-file>
-        
-        <source-file src="src/android/AudioHandler.java" target-dir="src/org/apache/cordova/media" />
-        <source-file src="src/android/AudioPlayer.java" target-dir="src/org/apache/cordova/media" />
-        <source-file src="src/android/FileHelper.java" target-dir="src/org/apache/cordova/media" />
-     </platform>
-
-
-     <!-- ubuntu -->
-     <platform name="ubuntu">
-         <config-file target="config.xml" parent="/*">
-             <feature name="Media">
-                 <param policy_group="microphone" policy_version="1" />
-                 <param policy_group="video" policy_version="1" />
-             </feature>
-         </config-file>
-         <header-file src="src/ubuntu/media.h" />
-         <source-file src="src/ubuntu/media.cpp" />
-     </platform>
-
-     <!-- ios -->
-     <platform name="ios">    
-         <config-file target="config.xml" parent="/*">
-             <feature name="Media">
-                 <param name="ios-package" value="CDVSound" /> 
-             </feature>
-         </config-file>
-         <header-file src="src/ios/CDVSound.h" />
-         <source-file src="src/ios/CDVSound.m" />
-     </platform>
-
-    <!-- blackberry10 -->
-    <platform name="blackberry10">
-        <source-file src="src/blackberry10/index.js" target-dir="Media" />
-        <config-file target="www/config.xml" parent="/widget">
-            <feature name="Media" value="Media"/>
-        </config-file>
-    </platform>
-
-    <!-- wp7 -->
-    <platform name="wp7">
-        <config-file target="config.xml" parent="/*">
-            <feature name="Media">
-                <param name="wp-package" value="Media"/>
-            </feature>
-        </config-file>
-
-        <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities">
-            <Capability Name="ID_CAP_MEDIALIB"/>
-            <Capability Name="ID_CAP_MICROPHONE"/>
-        </config-file>
-
-        <source-file src="src/wp/Media.cs" />
-        <source-file src="src/wp/AudioPlayer.cs" />
-    </platform>
-
-    <!-- wp8 -->
-    <platform name="wp8">
-        <config-file target="config.xml" parent="/*">
-            <feature name="Media">
-                <param name="wp-package" value="Media"/>
-            </feature>
-        </config-file>
-
-        <config-file target="Properties/WMAppManifest.xml" parent="/Deployment/App/Capabilities">
-            <Capability Name="ID_CAP_MEDIALIB_AUDIO"/>
-            <Capability Name="ID_CAP_MEDIALIB_PLAYBACK"/>
-            <Capability Name="ID_CAP_MICROPHONE"/>
-        </config-file>
-
-        <source-file src="src/wp/Media.cs" />
-        <source-file src="src/wp/AudioPlayer.cs" />
-    </platform>
-
-    <!-- windows8 -->
-    <platform name="windows8">
-        <js-module src="src/windows8/MediaProxy.js" name="MediaProxy">
-            <merges target="" />
-        </js-module>
-    </platform>
-
-    <!-- tizen -->
-    <platform name="tizen">
-        <js-module src="src/tizen/MediaProxy.js" name="MediaProxy">
-            <runs/>
-        </js-module>
-    </platform>
-</plugin>

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/src/android/AudioHandler.java
----------------------------------------------------------------------
diff --git a/src/android/AudioHandler.java b/src/android/AudioHandler.java
deleted file mode 100644
index 45e6837..0000000
--- a/src/android/AudioHandler.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
-       Licensed to the Apache Software Foundation (ASF) under one
-       or more contributor license agreements.  See the NOTICE file
-       distributed with this work for additional information
-       regarding copyright ownership.  The ASF licenses this file
-       to you under the Apache License, Version 2.0 (the
-       "License"); you may not use this file except in compliance
-       with the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-       Unless required by applicable law or agreed to in writing,
-       software distributed under the License is distributed on an
-       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-       KIND, either express or implied.  See the License for the
-       specific language governing permissions and limitations
-       under the License.
-*/
-package org.apache.cordova.media;
-
-import org.apache.cordova.CallbackContext;
-import org.apache.cordova.CordovaPlugin;
-import org.apache.cordova.CordovaResourceApi;
-
-import android.content.Context;
-import android.media.AudioManager;
-import android.net.Uri;
-
-import java.util.ArrayList;
-
-import org.apache.cordova.PluginResult;
-import org.json.JSONArray;
-import org.json.JSONException;
-import java.util.HashMap;
-
-/**
- * This class called by CordovaActivity to play and record audio.
- * The file can be local or over a network using http.
- *
- * Audio formats supported (tested):
- * 	.mp3, .wav
- *
- * Local audio files must reside in one of two places:
- * 		android_asset: 		file name must start with /android_asset/sound.mp3
- * 		sdcard:				file name is just sound.mp3
- */
-public class AudioHandler extends CordovaPlugin {
-
-    public static String TAG = "AudioHandler";
-    HashMap<String, AudioPlayer> players;	// Audio player object
-    ArrayList<AudioPlayer> pausedForPhone;     // Audio players that were paused when phone call came in
-
-    /**
-     * Constructor.
-     */
-    public AudioHandler() {
-        this.players = new HashMap<String, AudioPlayer>();
-        this.pausedForPhone = new ArrayList<AudioPlayer>();
-    }
-
-    /**
-     * Executes the request and returns PluginResult.
-     * @param action 		The action to execute.
-     * @param args 			JSONArry of arguments for the plugin.
-     * @param callbackContext		The callback context used when calling back into JavaScript.
-     * @return 				A PluginResult object with a status and message.
-     */
-    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
-        CordovaResourceApi resourceApi = webView.getResourceApi();
-        PluginResult.Status status = PluginResult.Status.OK;
-        String result = "";
-
-        if (action.equals("startRecordingAudio")) {
-            String target = args.getString(1);
-            String fileUriStr;
-            try {
-                Uri targetUri = resourceApi.remapUri(Uri.parse(target));
-                fileUriStr = targetUri.toString();
-            } catch (IllegalArgumentException e) {
-                fileUriStr = target;
-            }
-            this.startRecordingAudio(args.getString(0), FileHelper.stripFileProtocol(fileUriStr));
-        }
-        else if (action.equals("stopRecordingAudio")) {
-            this.stopRecordingAudio(args.getString(0));
-        }
-        else if (action.equals("startPlayingAudio")) {
-            String target = args.getString(1);
-            String fileUriStr;
-            try {
-                Uri targetUri = resourceApi.remapUri(Uri.parse(target));
-                fileUriStr = targetUri.toString();
-            } catch (IllegalArgumentException e) {
-                fileUriStr = target;
-            }
-            this.startPlayingAudio(args.getString(0), FileHelper.stripFileProtocol(fileUriStr));
-        }
-        else if (action.equals("seekToAudio")) {
-            this.seekToAudio(args.getString(0), args.getInt(1));
-        }
-        else if (action.equals("pausePlayingAudio")) {
-            this.pausePlayingAudio(args.getString(0));
-        }
-        else if (action.equals("stopPlayingAudio")) {
-            this.stopPlayingAudio(args.getString(0));
-        } else if (action.equals("setVolume")) {
-           try {
-               this.setVolume(args.getString(0), Float.parseFloat(args.getString(1)));
-           } catch (NumberFormatException nfe) {
-               //no-op
-           }
-        } else if (action.equals("getCurrentPositionAudio")) {
-            float f = this.getCurrentPositionAudio(args.getString(0));
-            callbackContext.sendPluginResult(new PluginResult(status, f));
-            return true;
-        }
-        else if (action.equals("getDurationAudio")) {
-            float f = this.getDurationAudio(args.getString(0), args.getString(1));
-            callbackContext.sendPluginResult(new PluginResult(status, f));
-            return true;
-        }
-        else if (action.equals("create")) {
-            String id = args.getString(0);
-            String src = FileHelper.stripFileProtocol(args.getString(1));
-            AudioPlayer audio = new AudioPlayer(this, id, src);
-            this.players.put(id, audio);
-        }
-        else if (action.equals("release")) {
-            boolean b = this.release(args.getString(0));
-            callbackContext.sendPluginResult(new PluginResult(status, b));
-            return true;
-        }
-        else { // Unrecognized action.
-            return false;
-        }
-
-        callbackContext.sendPluginResult(new PluginResult(status, result));
-
-        return true;
-    }
-
-    /**
-     * Stop all audio players and recorders.
-     */
-    public void onDestroy() {
-        for (AudioPlayer audio : this.players.values()) {
-            audio.destroy();
-        }
-        this.players.clear();
-    }
-
-    /**
-     * Stop all audio players and recorders on navigate.
-     */
-    @Override
-    public void onReset() {
-        onDestroy();
-    }
-
-    /**
-     * Called when a message is sent to plugin.
-     *
-     * @param id            The message id
-     * @param data          The message data
-     * @return              Object to stop propagation or null
-     */
-    public Object onMessage(String id, Object data) {
-
-        // If phone message
-        if (id.equals("telephone")) {
-
-            // If phone ringing, then pause playing
-            if ("ringing".equals(data) || "offhook".equals(data)) {
-
-                // Get all audio players and pause them
-                for (AudioPlayer audio : this.players.values()) {
-                    if (audio.getState() == AudioPlayer.STATE.MEDIA_RUNNING.ordinal()) {
-                        this.pausedForPhone.add(audio);
-                        audio.pausePlaying();
-                    }
-                }
-
-            }
-
-            // If phone idle, then resume playing those players we paused
-            else if ("idle".equals(data)) {
-                for (AudioPlayer audio : this.pausedForPhone) {
-                    audio.startPlaying(null);
-                }
-                this.pausedForPhone.clear();
-            }
-        }
-        return null;
-    }
-
-    //--------------------------------------------------------------------------
-    // LOCAL METHODS
-    //--------------------------------------------------------------------------
-
-    /**
-     * Release the audio player instance to save memory.
-     * @param id				The id of the audio player
-     */
-    private boolean release(String id) {
-        if (!this.players.containsKey(id)) {
-            return false;
-        }
-        AudioPlayer audio = this.players.get(id);
-        this.players.remove(id);
-        audio.destroy();
-        return true;
-    }
-
-    /**
-     * Start recording and save the specified file.
-     * @param id				The id of the audio player
-     * @param file				The name of the file
-     */
-    public void startRecordingAudio(String id, String file) {
-        AudioPlayer audio = this.players.get(id);
-        if ( audio == null) {
-            audio = new AudioPlayer(this, id, file);
-            this.players.put(id, audio);
-        }
-        audio.startRecording(file);
-    }
-
-    /**
-     * Stop recording and save to the file specified when recording started.
-     * @param id				The id of the audio player
-     */
-    public void stopRecordingAudio(String id) {
-        AudioPlayer audio = this.players.get(id);
-        if (audio != null) {
-            audio.stopRecording();
-        }
-    }
-
-    /**
-     * Start or resume playing audio file.
-     * @param id				The id of the audio player
-     * @param file				The name of the audio file.
-     */
-    public void startPlayingAudio(String id, String file) {
-        AudioPlayer audio = this.players.get(id);
-        if (audio == null) {
-            audio = new AudioPlayer(this, id, file);
-            this.players.put(id, audio);
-        }
-        audio.startPlaying(file);
-    }
-
-    /**
-     * Seek to a location.
-     * @param id				The id of the audio player
-     * @param milliseconds		int: number of milliseconds to skip 1000 = 1 second
-     */
-    public void seekToAudio(String id, int milliseconds) {
-        AudioPlayer audio = this.players.get(id);
-        if (audio != null) {
-            audio.seekToPlaying(milliseconds);
-        }
-    }
-
-    /**
-     * Pause playing.
-     * @param id				The id of the audio player
-     */
-    public void pausePlayingAudio(String id) {
-        AudioPlayer audio = this.players.get(id);
-        if (audio != null) {
-            audio.pausePlaying();
-        }
-    }
-
-    /**
-     * Stop playing the audio file.
-     * @param id				The id of the audio player
-     */
-    public void stopPlayingAudio(String id) {
-        AudioPlayer audio = this.players.get(id);
-        if (audio != null) {
-            audio.stopPlaying();
-            //audio.destroy();
-            //this.players.remove(id);
-        }
-    }
-
-    /**
-     * Get current position of playback.
-     * @param id				The id of the audio player
-     * @return 					position in msec
-     */
-    public float getCurrentPositionAudio(String id) {
-        AudioPlayer audio = this.players.get(id);
-        if (audio != null) {
-            return (audio.getCurrentPosition() / 1000.0f);
-        }
-        return -1;
-    }
-
-    /**
-     * Get the duration of the audio file.
-     * @param id				The id of the audio player
-     * @param file				The name of the audio file.
-     * @return					The duration in msec.
-     */
-    public float getDurationAudio(String id, String file) {
-
-        // Get audio file
-        AudioPlayer audio = this.players.get(id);
-        if (audio != null) {
-            return (audio.getDuration(file));
-        }
-
-        // If not already open, then open the file
-        else {
-            audio = new AudioPlayer(this, id, file);
-            this.players.put(id, audio);
-            return (audio.getDuration(file));
-        }
-    }
-
-    /**
-     * Set the audio device to be used for playback.
-     *
-     * @param output			1=earpiece, 2=speaker
-     */
-    @SuppressWarnings("deprecation")
-    public void setAudioOutputDevice(int output) {
-        AudioManager audiMgr = (AudioManager) this.cordova.getActivity().getSystemService(Context.AUDIO_SERVICE);
-        if (output == 2) {
-            audiMgr.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_SPEAKER, AudioManager.ROUTE_ALL);
-        }
-        else if (output == 1) {
-            audiMgr.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL);
-        }
-        else {
-            System.out.println("AudioHandler.setAudioOutputDevice() Error: Unknown output device.");
-        }
-    }
-
-    /**
-     * Get the audio device to be used for playback.
-     *
-     * @return					1=earpiece, 2=speaker
-     */
-    @SuppressWarnings("deprecation")
-    public int getAudioOutputDevice() {
-        AudioManager audiMgr = (AudioManager) this.cordova.getActivity().getSystemService(Context.AUDIO_SERVICE);
-        if (audiMgr.getRouting(AudioManager.MODE_NORMAL) == AudioManager.ROUTE_EARPIECE) {
-            return 1;
-        }
-        else if (audiMgr.getRouting(AudioManager.MODE_NORMAL) == AudioManager.ROUTE_SPEAKER) {
-            return 2;
-        }
-        else {
-            return -1;
-        }
-    }
-
-    /**
-     * Set the volume for an audio device
-     *
-     * @param id				The id of the audio player
-     * @param volume            Volume to adjust to 0.0f - 1.0f
-     */
-    public void setVolume(String id, float volume) {
-        AudioPlayer audio = this.players.get(id);
-        if (audio != null) {
-            audio.setVolume(volume);
-        } else {
-            System.out.println("AudioHandler.setVolume() Error: Unknown Audio Player " + id);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/src/android/AudioPlayer.java
----------------------------------------------------------------------
diff --git a/src/android/AudioPlayer.java b/src/android/AudioPlayer.java
deleted file mode 100644
index 30ca1ac..0000000
--- a/src/android/AudioPlayer.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*
-       Licensed to the Apache Software Foundation (ASF) under one
-       or more contributor license agreements.  See the NOTICE file
-       distributed with this work for additional information
-       regarding copyright ownership.  The ASF licenses this file
-       to you under the Apache License, Version 2.0 (the
-       "License"); you may not use this file except in compliance
-       with the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-       Unless required by applicable law or agreed to in writing,
-       software distributed under the License is distributed on an
-       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-       KIND, either express or implied.  See the License for the
-       specific language governing permissions and limitations
-       under the License.
-*/
-package org.apache.cordova.media;
-
-import android.media.AudioManager;
-import android.media.MediaPlayer;
-import android.media.MediaPlayer.OnCompletionListener;
-import android.media.MediaPlayer.OnErrorListener;
-import android.media.MediaPlayer.OnPreparedListener;
-import android.media.MediaRecorder;
-import android.os.Environment;
-import android.util.Log;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-/**
- * This class implements the audio playback and recording capabilities used by Cordova.
- * It is called by the AudioHandler Cordova class.
- * Only one file can be played or recorded per class instance.
- *
- * Local audio files must reside in one of two places:
- *      android_asset:      file name must start with /android_asset/sound.mp3
- *      sdcard:             file name is just sound.mp3
- */
-public class AudioPlayer implements OnCompletionListener, OnPreparedListener, OnErrorListener {
-
-    // AudioPlayer modes
-    public enum MODE { NONE, PLAY, RECORD };
-
-    // AudioPlayer states
-    public enum STATE { MEDIA_NONE,
-                        MEDIA_STARTING,
-                        MEDIA_RUNNING,
-                        MEDIA_PAUSED,
-                        MEDIA_STOPPED,
-                        MEDIA_LOADING
-                      };
-
-    private static final String LOG_TAG = "AudioPlayer";
-
-    // AudioPlayer message ids
-    private static int MEDIA_STATE = 1;
-    private static int MEDIA_DURATION = 2;
-    private static int MEDIA_POSITION = 3;
-    private static int MEDIA_ERROR = 9;
-
-    // Media error codes
-    private static int MEDIA_ERR_NONE_ACTIVE    = 0;
-    private static int MEDIA_ERR_ABORTED        = 1;
-//    private static int MEDIA_ERR_NETWORK        = 2;
-//    private static int MEDIA_ERR_DECODE         = 3;
-//    private static int MEDIA_ERR_NONE_SUPPORTED = 4;
-
-    private AudioHandler handler;           // The AudioHandler object
-    private String id;                      // The id of this player (used to identify Media object in JavaScript)
-    private MODE mode = MODE.NONE;          // Playback or Recording mode
-    private STATE state = STATE.MEDIA_NONE; // State of recording or playback
-
-    private String audioFile = null;        // File name to play or record to
-    private float duration = -1;            // Duration of audio
-
-    private MediaRecorder recorder = null;  // Audio recording object
-    private String tempFile = null;         // Temporary recording file name
-
-    private MediaPlayer player = null;      // Audio player object
-    private boolean prepareOnly = true;     // playback after file prepare flag
-    private int seekOnPrepared = 0;     // seek to this location once media is prepared
-
-    /**
-     * Constructor.
-     *
-     * @param handler           The audio handler object
-     * @param id                The id of this audio player
-     */
-    public AudioPlayer(AudioHandler handler, String id, String file) {
-        this.handler = handler;
-        this.id = id;
-        this.audioFile = file;
-        this.recorder = new MediaRecorder();
-
-        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
-            this.tempFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tmprecording.3gp";
-        } else {
-            this.tempFile = "/data/data/" + handler.cordova.getActivity().getPackageName() + "/cache/tmprecording.3gp";
-        }
-
-    }
-
-    /**
-     * Destroy player and stop audio playing or recording.
-     */
-    public void destroy() {
-        // Stop any play or record
-        if (this.player != null) {
-            if ((this.state == STATE.MEDIA_RUNNING) || (this.state == STATE.MEDIA_PAUSED)) {
-                this.player.stop();
-                this.setState(STATE.MEDIA_STOPPED);
-            }
-            this.player.release();
-            this.player = null;
-        }
-        if (this.recorder != null) {
-            this.stopRecording();
-            this.recorder.release();
-            this.recorder = null;
-        }
-    }
-
-    /**
-     * Start recording the specified file.
-     *
-     * @param file              The name of the file
-     */
-    public void startRecording(String file) {
-        switch (this.mode) {
-        case PLAY:
-            Log.d(LOG_TAG, "AudioPlayer Error: Can't record in play mode.");
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', "+MEDIA_ERROR+", { \"code\":"+MEDIA_ERR_ABORTED+"});");
-            break;
-        case NONE:
-            this.audioFile = file;
-            this.recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
-            this.recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); // THREE_GPP);
-            this.recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); //AMR_NB);
-            this.recorder.setOutputFile(this.tempFile);
-            try {
-                this.recorder.prepare();
-                this.recorder.start();
-                this.setState(STATE.MEDIA_RUNNING);
-                return;
-            } catch (IllegalStateException e) {
-                e.printStackTrace();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', "+MEDIA_ERROR+", { \"code\":"+MEDIA_ERR_ABORTED+"});");
-            break;
-        case RECORD:
-            Log.d(LOG_TAG, "AudioPlayer Error: Already recording.");
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', "+MEDIA_ERROR+", { \"code\":"+MEDIA_ERR_ABORTED+"});");
-        }
-    }
-
-    /**
-     * Save temporary recorded file to specified name
-     *
-     * @param file
-     */
-    public void moveFile(String file) {
-        /* this is a hack to save the file as the specified name */
-        File f = new File(this.tempFile);
-
-        if (!file.startsWith("/")) {
-            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
-                file = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + file;
-            } else {
-                file = "/data/data/" + handler.cordova.getActivity().getPackageName() + "/cache/" + file;
-            }
-        }
-
-        String logMsg = "renaming " + this.tempFile + " to " + file;
-        Log.d(LOG_TAG, logMsg);
-        if (!f.renameTo(new File(file))) Log.e(LOG_TAG, "FAILED " + logMsg);
-    }
-
-    /**
-     * Stop recording and save to the file specified when recording started.
-     */
-    public void stopRecording() {
-        if (this.recorder != null) {
-            try{
-                if (this.state == STATE.MEDIA_RUNNING) {
-                    this.recorder.stop();
-                    this.setState(STATE.MEDIA_STOPPED);
-                }
-                this.recorder.reset();
-                this.moveFile(this.audioFile);
-            }
-            catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    //==========================================================================
-    // Playback
-    //==========================================================================
-
-    /**
-     * Start or resume playing audio file.
-     *
-     * @param file              The name of the audio file.
-     */
-    public void startPlaying(String file) {
-        if (this.readyPlayer(file) && this.player != null) {
-            this.player.start();
-            this.setState(STATE.MEDIA_RUNNING);
-            this.seekOnPrepared = 0; //insures this is always reset
-        } else {
-            this.prepareOnly = false;
-        }
-    }
-
-    /**
-     * Seek or jump to a new time in the track.
-     */
-    public void seekToPlaying(int milliseconds) {
-        if (this.readyPlayer(this.audioFile)) {
-            this.player.seekTo(milliseconds);
-            Log.d(LOG_TAG, "Send a onStatus update for the new seek");
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_POSITION + ", " + milliseconds / 1000.0f + ");");
-        }
-        else {
-            this.seekOnPrepared = milliseconds;
-        }
-    }
-
-    /**
-     * Pause playing.
-     */
-    public void pausePlaying() {
-
-        // If playing, then pause
-        if (this.state == STATE.MEDIA_RUNNING && this.player != null) {
-            this.player.pause();
-            this.setState(STATE.MEDIA_PAUSED);
-        }
-        else {
-            Log.d(LOG_TAG, "AudioPlayer Error: pausePlaying() called during invalid state: " + this.state.ordinal());
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_ERROR + ", { \"code\":" + MEDIA_ERR_NONE_ACTIVE + "});");
-        }
-    }
-
-    /**
-     * Stop playing the audio file.
-     */
-    public void stopPlaying() {
-        if ((this.state == STATE.MEDIA_RUNNING) || (this.state == STATE.MEDIA_PAUSED)) {
-            this.player.pause();
-            this.player.seekTo(0);
-            Log.d(LOG_TAG, "stopPlaying is calling stopped");
-            this.setState(STATE.MEDIA_STOPPED);
-        }
-        else {
-            Log.d(LOG_TAG, "AudioPlayer Error: stopPlaying() called during invalid state: " + this.state.ordinal());
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_ERROR + ", { \"code\":" + MEDIA_ERR_NONE_ACTIVE + "});");
-        }
-    }
-
-    /**
-     * Callback to be invoked when playback of a media source has completed.
-     *
-     * @param player           The MediaPlayer that reached the end of the file
-     */
-    public void onCompletion(MediaPlayer player) {
-        Log.d(LOG_TAG, "on completion is calling stopped");
-        this.setState(STATE.MEDIA_STOPPED);
-    }
-
-    /**
-     * Get current position of playback.
-     *
-     * @return                  position in msec or -1 if not playing
-     */
-    public long getCurrentPosition() {
-        if ((this.state == STATE.MEDIA_RUNNING) || (this.state == STATE.MEDIA_PAUSED)) {
-            int curPos = this.player.getCurrentPosition();
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_POSITION + ", " + curPos / 1000.0f + ");");
-            return curPos;
-        }
-        else {
-            return -1;
-        }
-    }
-
-    /**
-     * Determine if playback file is streaming or local.
-     * It is streaming if file name starts with "http://"
-     *
-     * @param file              The file name
-     * @return                  T=streaming, F=local
-     */
-    public boolean isStreaming(String file) {
-        if (file.contains("http://") || file.contains("https://")) {
-            return true;
-        }
-        else {
-            return false;
-        }
-    }
-
-    /**
-      * Get the duration of the audio file.
-      *
-      * @param file             The name of the audio file.
-      * @return                 The duration in msec.
-      *                             -1=can't be determined
-      *                             -2=not allowed
-      */
-    public float getDuration(String file) {
-
-        // Can't get duration of recording
-        if (this.recorder != null) {
-            return (-2); // not allowed
-        }
-
-        // If audio file already loaded and started, then return duration
-        if (this.player != null) {
-            return this.duration;
-        }
-
-        // If no player yet, then create one
-        else {
-            this.prepareOnly = true;
-            this.startPlaying(file);
-
-            // This will only return value for local, since streaming
-            // file hasn't been read yet.
-            return this.duration;
-        }
-    }
-
-    /**
-     * Callback to be invoked when the media source is ready for playback.
-     *
-     * @param player           The MediaPlayer that is ready for playback
-     */
-    public void onPrepared(MediaPlayer player) {
-        // Listen for playback completion
-        this.player.setOnCompletionListener(this);
-        // seek to any location received while not prepared
-        this.seekToPlaying(this.seekOnPrepared);
-        // If start playing after prepared
-        if (!this.prepareOnly) {
-            this.player.start();
-            this.setState(STATE.MEDIA_RUNNING);
-            this.seekOnPrepared = 0; //reset only when played
-        } else {
-            this.setState(STATE.MEDIA_STARTING);
-        }
-        // Save off duration
-        this.duration = getDurationInSeconds();
-        // reset prepare only flag
-        this.prepareOnly = true;
-
-        // Send status notification to JavaScript
-        this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_DURATION + "," + this.duration + ");");
-    }
-
-    /**
-     * By default Android returns the length of audio in mills but we want seconds
-     *
-     * @return length of clip in seconds
-     */
-    private float getDurationInSeconds() {
-        return (this.player.getDuration() / 1000.0f);
-    }
-
-    /**
-     * Callback to be invoked when there has been an error during an asynchronous operation
-     *  (other errors will throw exceptions at method call time).
-     *
-     * @param player           the MediaPlayer the error pertains to
-     * @param arg1              the type of error that has occurred: (MEDIA_ERROR_UNKNOWN, MEDIA_ERROR_SERVER_DIED)
-     * @param arg2              an extra code, specific to the error.
-     */
-    public boolean onError(MediaPlayer player, int arg1, int arg2) {
-        Log.d(LOG_TAG, "AudioPlayer.onError(" + arg1 + ", " + arg2 + ")");
-
-        // TODO: Not sure if this needs to be sent?
-        this.player.stop();
-        this.player.release();
-
-        // Send error notification to JavaScript
-        this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', { \"code\":" + arg1 + "});");
-        return false;
-    }
-
-    /**
-     * Set the state and send it to JavaScript.
-     *
-     * @param state
-     */
-    private void setState(STATE state) {
-        if (this.state != state) {
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_STATE + ", " + state.ordinal() + ");");
-        }
-        this.state = state;
-    }
-
-    /**
-     * Set the mode and send it to JavaScript.
-     *
-     * @param state
-     */
-    private void setMode(MODE mode) {
-        if (this.mode != mode) {
-            //mode is not part of the expected behavior, so no notification
-            //this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_STATE + ", " + mode + ");");
-        }
-        this.mode = mode;
-    }
-
-    /**
-     * Get the audio state.
-     *
-     * @return int
-     */
-    public int getState() {
-        return this.state.ordinal();
-    }
-
-    /**
-     * Set the volume for audio player
-     *
-     * @param volume
-     */
-    public void setVolume(float volume) {
-        this.player.setVolume(volume, volume);
-    }
-
-    /**
-     * attempts to put the player in play mode
-     * @return true if in playmode, false otherwise
-     */
-    private boolean playMode() {
-        switch(this.mode) {
-        case NONE:
-            this.setMode(MODE.PLAY);
-            break;
-        case PLAY:
-            break;
-        case RECORD:
-            Log.d(LOG_TAG, "AudioPlayer Error: Can't play in record mode.");
-            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_ERROR + ", { \"code\":" + MEDIA_ERR_ABORTED + "});");
-            return false; //player is not ready
-        }
-        return true;
-    }
-
-    /**
-     * attempts to initialize the media player for playback
-     * @param file the file to play
-     * @return false if player not ready, reports if in wrong mode or state
-     */
-    private boolean readyPlayer(String file) {
-        if (playMode()) {
-            switch (this.state) {
-                case MEDIA_NONE:
-                    if (this.player == null) {
-                        this.player = new MediaPlayer();
-                    }
-                    try {
-                        this.loadAudioFile(file);
-                    } catch (Exception e) {
-                        this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', "+MEDIA_ERROR+", { \"code\":"+MEDIA_ERR_ABORTED+"});");
-                    }
-                    return false;
-                case MEDIA_LOADING:
-                    //cordova js is not aware of MEDIA_LOADING, so we send MEDIA_STARTING instead
-                    Log.d(LOG_TAG, "AudioPlayer Loading: startPlaying() called during media preparation: " + STATE.MEDIA_STARTING.ordinal());
-                    this.prepareOnly = false;
-                    return false;
-                case MEDIA_STARTING:
-                case MEDIA_RUNNING:
-                case MEDIA_PAUSED:
-                    return true;
-                case MEDIA_STOPPED:
-                    //if we are readying the same file
-                    if (this.audioFile.compareTo(file) == 0) {
-                        //reset the audio file
-                        player.seekTo(0);
-                        player.pause();
-                        return true;
-                    } else {
-                        //reset the player
-                        this.player.reset();
-                        try {
-                            this.loadAudioFile(file);
-                        } catch (Exception e) {
-                            this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_ERROR + ", { \"code\":" + MEDIA_ERR_ABORTED + "});");
-                        }
-                        //if we had to prepare= the file, we won't be in the correct state for playback
-                        return false;
-                    }
-                default:
-                    Log.d(LOG_TAG, "AudioPlayer Error: startPlaying() called during invalid state: " + this.state);
-                    this.handler.webView.sendJavascript("cordova.require('org.apache.cordova.media.Media').onStatus('" + this.id + "', " + MEDIA_ERROR + ", { \"code\":" + MEDIA_ERR_ABORTED + "});");
-            }
-        }
-        return false;
-    }
-
-    /**
-     * 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.player.setDataSource(file);
-            this.player.setAudioStreamType(AudioManager.STREAM_MUSIC);
-            //if it's a streaming file, play mode is implied
-            this.setMode(MODE.PLAY);
-            this.setState(STATE.MEDIA_STARTING);
-            this.player.setOnPreparedListener(this);
-            this.player.prepareAsync();
-        }
-        else {
-            if (file.startsWith("/android_asset/")) {
-                String f = file.substring(15);
-                android.content.res.AssetFileDescriptor fd = this.handler.cordova.getActivity().getAssets().openFd(f);
-                this.player.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength());
-            }
-            else {
-                File fp = new File(file);
-                if (fp.exists()) {
-                    FileInputStream fileInputStream = new FileInputStream(file);
-                    this.player.setDataSource(fileInputStream.getFD());
-                    fileInputStream.close();
-                }
-                else {
-                    this.player.setDataSource(Environment.getExternalStorageDirectory().getPath() + "/" + file);
-                }
-            }
-                this.setState(STATE.MEDIA_STARTING);
-                this.player.setOnPreparedListener(this);
-                this.player.prepare();
-
-                // Get duration
-                this.duration = getDurationInSeconds();
-            }
-    }
-}

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/src/android/FileHelper.java
----------------------------------------------------------------------
diff --git a/src/android/FileHelper.java b/src/android/FileHelper.java
deleted file mode 100644
index e20752c..0000000
--- a/src/android/FileHelper.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-       Licensed to the Apache Software Foundation (ASF) under one
-       or more contributor license agreements.  See the NOTICE file
-       distributed with this work for additional information
-       regarding copyright ownership.  The ASF licenses this file
-       to you under the Apache License, Version 2.0 (the
-       "License"); you may not use this file except in compliance
-       with the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-       Unless required by applicable law or agreed to in writing,
-       software distributed under the License is distributed on an
-       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-       KIND, either express or implied.  See the License for the
-       specific language governing permissions and limitations
-       under the License.
- */
-package org.apache.cordova.media;
-
-import android.net.Uri;
-
-public class FileHelper {
-
-    /**
-     * Removes the "file://" prefix from the given URI string, if applicable.
-     * If the given URI string doesn't have a "file://" prefix, it is returned unchanged.
-     *
-     * @param uriString the URI string to operate on
-     * @return a path without the "file://" prefix
-     */
-    public static String stripFileProtocol(String uriString) {
-        if (uriString.startsWith("file://")) {
-            return Uri.parse(uriString).getPath();
-        }
-        return uriString;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/src/blackberry10/index.js
----------------------------------------------------------------------
diff --git a/src/blackberry10/index.js b/src/blackberry10/index.js
deleted file mode 100644
index 1b9b786..0000000
--- a/src/blackberry10/index.js
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-var audioObjects = {},
-    mediaErrorsHandled = false;
-
-// There is a bug in the webplatform handling of media error
-// dialogs prior to 10.2. This function needs to be run once
-// on the webview which plays audio to prevent freezing.
-function handleMediaErrors() {
-    var webview = qnx.webplatform.getWebViews()[0],
-        handler = webview.onDialogRequested;
-    if (!mediaErrorsHandled) {
-        webview.allowWebEvent("DialogRequested");
-        webview.onDialogRequested = undefined;
-        webview.onDialogRequested = function (eventArgs) {
-            var parsedArgs = JSON.parse(eventArgs);
-            if (parsedArgs.dialogType === 'MediaError') {
-                return '{"setPreventDefault": true}';
-            }
-            handler(eventArgs);
-        };
-        mediaErrorsHandled = true;
-    }
-}
-
-module.exports = {
-
-    create: function (success, fail, args, env) {
-        var result = new PluginResult(args, env),
-            id;
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        id = JSON.parse(decodeURIComponent(args[0]));
-
-        if (!args[1]){
-            audioObjects[id] = new Audio();
-        } else {
-            audioObjects[id] = new Audio(JSON.parse(decodeURIComponent(args[1])));
-        }
-
-        handleMediaErrors();
-
-        result.ok();
-    },
-
-    startPlayingAudio: function (success, fail, args, env) {
-
-        var audio,
-            id,
-            result = new PluginResult(args, env);
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        id = JSON.parse(decodeURIComponent(args[0]));
-
-        audio = audioObjects[id];
-
-        if (!audio) {
-            result.error("Audio object has not been initialized");
-        } else {
-            audio.play();
-            result.ok();
-        }
-    },
-
-    stopPlayingAudio: function (success, fail, args, env) {
-
-        var audio,
-            id,
-            result = new PluginResult(args, env);
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        id = JSON.parse(decodeURIComponent(args[0]));
-
-        audio = audioObjects[id];
-
-        if (!audio) {
-            result.error("Audio Object has not been initialized");
-            return;
-        }
-
-        audio.pause();
-        audio.currentTime = 0;
-
-        result.ok();
-    },
-
-    seekToAudio: function (success, fail, args, env) {
-
-        var audio,
-            result = new PluginResult(args, env);
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        audio = audioObjects[JSON.parse(decodeURIComponent(args[0]))];
-
-        if (!audio) {
-            result.error("Audio Object has not been initialized");
-        } else if (!args[1]) {
-            result.error("Media seek time argument not found");
-        } else {
-            try {
-                audio.currentTime = JSON.parse(decodeURIComponent(args[1])) / 1000;
-                result.ok();
-            } catch (e) {
-                result.error("Error seeking audio: " + e);
-            }
-        }
-    },
-
-    pausePlayingAudio: function (success, fail, args, env) {
-
-        var audio,
-            result = new PluginResult(args, env);
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        audio = audioObjects[JSON.parse(decodeURIComponent(args[0]))];
-
-        if (!audio) {
-            result.error("Audio Object has not been initialized");
-            return;
-        }
-
-        audio.pause();
-    },
-
-    getCurrentPositionAudio: function (success, fail, args, env) {
-
-        var audio,
-            result = new PluginResult(args, env);
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        audio = audioObjects[JSON.parse(decodeURIComponent(args[0]))];
-
-        if (!audio) {
-            result.error("Audio Object has not been initialized");
-            return;
-        }
-
-        result.ok(audio.currentTime);
-    },
-
-    getDuration: function (success, fail, args, env) {
-
-        var audio,
-            result = new PluginResult(args, env);
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        audio = audioObjects[JSON.parse(decodeURIComponent(args[0]))];
-
-        if (!audio) {
-            result.error("Audio Object has not been initialized");
-            return;
-        }
-
-        result.ok(audio.duration);
-    },
-
-    startRecordingAudio: function (success, fail, args, env) {
-        var result = new PluginResult(args, env);
-        result.error("Not supported");
-    },
-
-    stopRecordingAudio: function (success, fail, args, env) {
-        var result = new PluginResult(args, env);
-        result.error("Not supported");
-    },
-
-    release: function (success, fail, args, env) {
-        var audio,
-            id,
-            result = new PluginResult(args, env);
-
-        if (!args[0]) {
-            result.error("Media Object id was not sent in arguments");
-            return;
-        }
-
-        id = JSON.parse(decodeURIComponent(args[0]));
-
-        audio = audioObjects[id];
-
-        if (audio) {
-            if(audio.src !== ""){
-                audio.src = undefined;
-            }
-            audioObjects[id] = undefined;
-        }
-
-        result.ok();
-    }
-};

http://git-wip-us.apache.org/repos/asf/cordova-plugin-media/blob/bffdff79/src/ios/CDVSound.h
----------------------------------------------------------------------
diff --git a/src/ios/CDVSound.h b/src/ios/CDVSound.h
deleted file mode 100644
index 849ca82..0000000
--- a/src/ios/CDVSound.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
- */
-
-#import <Foundation/Foundation.h>
-#import <AudioToolbox/AudioServices.h>
-#import <AVFoundation/AVFoundation.h>
-
-#import <Cordova/CDVPlugin.h>
-
-enum CDVMediaError {
-    MEDIA_ERR_ABORTED = 1,
-    MEDIA_ERR_NETWORK = 2,
-    MEDIA_ERR_DECODE = 3,
-    MEDIA_ERR_NONE_SUPPORTED = 4
-};
-typedef NSUInteger CDVMediaError;
-
-enum CDVMediaStates {
-    MEDIA_NONE = 0,
-    MEDIA_STARTING = 1,
-    MEDIA_RUNNING = 2,
-    MEDIA_PAUSED = 3,
-    MEDIA_STOPPED = 4
-};
-typedef NSUInteger CDVMediaStates;
-
-enum CDVMediaMsg {
-    MEDIA_STATE = 1,
-    MEDIA_DURATION = 2,
-    MEDIA_POSITION = 3,
-    MEDIA_ERROR = 9
-};
-typedef NSUInteger CDVMediaMsg;
-
-@interface CDVAudioPlayer : AVAudioPlayer
-{
-    NSString* mediaId;
-}
-@property (nonatomic, copy) NSString* mediaId;
-@end
-
-@interface CDVAudioRecorder : AVAudioRecorder
-{
-    NSString* mediaId;
-}
-@property (nonatomic, copy) NSString* mediaId;
-@end
-
-@interface CDVAudioFile : NSObject
-{
-    NSString* resourcePath;
-    NSURL* resourceURL;
-    CDVAudioPlayer* player;
-    CDVAudioRecorder* recorder;
-    NSNumber* volume;
-}
-
-@property (nonatomic, strong) NSString* resourcePath;
-@property (nonatomic, strong) NSURL* resourceURL;
-@property (nonatomic, strong) CDVAudioPlayer* player;
-@property (nonatomic, strong) NSNumber* volume;
-
-@property (nonatomic, strong) CDVAudioRecorder* recorder;
-
-@end
-
-@interface CDVSound : CDVPlugin <AVAudioPlayerDelegate, AVAudioRecorderDelegate>
-{
-    NSMutableDictionary* soundCache;
-    AVAudioSession* avSession;
-}
-@property (nonatomic, strong) NSMutableDictionary* soundCache;
-@property (nonatomic, strong) AVAudioSession* avSession;
-
-- (void)startPlayingAudio:(CDVInvokedUrlCommand*)command;
-- (void)pausePlayingAudio:(CDVInvokedUrlCommand*)command;
-- (void)stopPlayingAudio:(CDVInvokedUrlCommand*)command;
-- (void)seekToAudio:(CDVInvokedUrlCommand*)command;
-- (void)release:(CDVInvokedUrlCommand*)command;
-- (void)getCurrentPositionAudio:(CDVInvokedUrlCommand*)command;
-
-- (BOOL)hasAudioSession;
-
-// helper methods
-- (NSURL*)urlForRecording:(NSString*)resourcePath;
-- (NSURL*)urlForPlaying:(NSString*)resourcePath;
-- (NSURL*)urlForResource:(NSString*)resourcePath CDV_DEPRECATED(2.5, "Use specific api for playing or recording");
-
-- (CDVAudioFile*)audioFileForResource:(NSString*)resourcePath withId:(NSString*)mediaId CDV_DEPRECATED(2.5, "Use updated audioFileForResource api");
-
-- (CDVAudioFile*)audioFileForResource:(NSString*)resourcePath withId:(NSString*)mediaId doValidation:(BOOL)bValidate forRecording:(BOOL)bRecord;
-- (BOOL)prepareToPlay:(CDVAudioFile*)audioFile withId:(NSString*)mediaId;
-- (NSString*)createMediaErrorWithCode:(CDVMediaError)code message:(NSString*)message;
-
-- (void)startRecordingAudio:(CDVInvokedUrlCommand*)command;
-- (void)stopRecordingAudio:(CDVInvokedUrlCommand*)command;
-
-- (void)setVolume:(CDVInvokedUrlCommand*)command;
-
-@end


Mime
View raw message