CB-12369: Add plugin typings from DefinitelyTyped
authorNikita Matrosov <v-nimatr@microsoft.com>
Thu, 19 Jan 2017 13:09:39 +0000 (16:09 +0300)
committerVladimir Kotikov <kotikov.vladimir@gmail.com>
Fri, 20 Jan 2017 08:44:24 +0000 (11:44 +0300)
 This closes #126

package.json
types/index.d.ts [new file with mode: 0644]

index bedb79b..52da0fe 100644 (file)
@@ -2,6 +2,7 @@
   "name": "cordova-plugin-media",
   "version": "2.4.2-dev",
   "description": "Cordova Media Plugin",
+  "types": "./types/index.d.ts",
   "cordova": {
     "id": "cordova-plugin-media",
     "platforms": [
diff --git a/types/index.d.ts b/types/index.d.ts
new file mode 100644 (file)
index 0000000..3e47fb9
--- /dev/null
@@ -0,0 +1,84 @@
+// Type definitions for Apache Cordova Media plugin
+// Project: https://github.com/apache/cordova-plugin-media
+// Definitions by: Microsoft Open Technologies Inc <http://msopentech.com>
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// 
+// Copyright (c) Microsoft Open Technologies Inc
+// Licensed under the MIT license
+
+declare var Media: {
+    new (
+        src: string,
+        mediaSuccess: () => void,
+        mediaError?: (error: MediaError) => any,
+        mediaStatus?: (status: number) => void): Media;
+        //Media statuses
+        MEDIA_NONE: number;
+        MEDIA_STARTING: number;
+        MEDIA_RUNNING: number;
+        MEDIA_PAUSED: number;
+        MEDIA_STOPPED: number
+};
+
+/**
+ * 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.
+ */
+interface Media {
+    /**
+     * Returns the current position within an audio file. Also updates the Media object's position parameter.
+     * @param mediaSuccess The callback that is passed the current position in seconds.
+     * @param mediaError   The callback to execute if an error occurs.
+     */
+    getCurrentPosition(
+        mediaSuccess: (position: number) => void,
+        mediaError?: (error: MediaError) => void): void;
+    /** Returns the duration of an audio file in seconds. If the duration is unknown, it returns a value of -1. */
+    getDuration(): number;
+    /** 
+     * Starts or resumes playing an audio file.
+     * @param iosPlayOptions: iOS options quirks
+     */
+    play(iosPlayOptions?: IosPlayOptions): void;
+    /** Pauses playing an audio file. */
+    pause(): void;
+    /**
+     * 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.
+     */
+    release(): void;
+    /**
+     * Sets the current position within an audio file.
+     * @param position Position in milliseconds.
+     */
+    seekTo(position: number): void;
+    /**
+     * Set the volume for an audio file.
+     * @param volume The volume to set for playback. The value must be within the range of 0.0 to 1.0.
+     */
+    setVolume(volume: number): void;
+    /** Starts recording an audio file. */
+    startRecord(): void;
+    /** Stops recording an audio file. */
+    stopRecord(): void;
+    /** Stops playing an audio file. */
+    stop(): void;
+    /**
+     * The position within the audio playback, in seconds.
+     * Not automatically updated during play; call getCurrentPosition to update.
+     */
+    position: number;
+    /** The duration of the media, in seconds. */
+    duration: number;
+}
+/**
+ *  iOS optional parameters for media.play
+ *  See https://github.com/apache/cordova-plugin-media#ios-quirks
+ */
+interface IosPlayOptions {
+    numberOfLoops?: number;
+    playAudioWhenScreenIsLocked?: boolean;
+}
\ No newline at end of file