diff options
Diffstat (limited to 'plugins/org.apache.cordova.media/src/windows8/MediaProxy.js')
| -rw-r--r-- | plugins/org.apache.cordova.media/src/windows8/MediaProxy.js | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/plugins/org.apache.cordova.media/src/windows8/MediaProxy.js b/plugins/org.apache.cordova.media/src/windows8/MediaProxy.js deleted file mode 100644 index e7ec51b7..00000000 --- a/plugins/org.apache.cordova.media/src/windows8/MediaProxy.js +++ /dev/null @@ -1,217 +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. - * -*/ - -/*global Windows:true */ - -var cordova = require('cordova'), - Media = require('org.apache.cordova.media.Media'); - -var MediaError = require('org.apache.cordova.media.MediaError'); - -var recordedFile; - -module.exports = { - mediaCaptureMrg:null, - - // Initiates the audio file - create:function(win, lose, args) { - var id = args[0]; - var src = args[1]; - var thisM = Media.get(id); - Media.onStatus(id, Media.MEDIA_STATE, Media.MEDIA_STARTING); - - Media.prototype.node = null; - - var fn = src.split('.').pop(); // gets the file extension - if (thisM.node === null) { - if (fn === 'mp3' || fn === 'wma' || fn === 'wav' || - fn === 'cda' || fn === 'adx' || fn === 'wm' || - fn === 'm3u' || fn === 'wmx' || fn === 'm4a') { - thisM.node = new Audio(src); - thisM.node.load(); - - var getDuration = function () { - var dur = thisM.node.duration; - if (isNaN(dur)) { - dur = -1; - } - Media.onStatus(id, Media.MEDIA_DURATION, dur); - }; - - thisM.node.onloadedmetadata = getDuration; - getDuration(); - } - else { - lose && lose({code:MediaError.MEDIA_ERR_ABORTED}); - } - } - }, - - // Start playing the audio - startPlayingAudio:function(win, lose, args) { - var id = args[0]; - //var src = args[1]; - //var options = args[2]; - - var thisM = Media.get(id); - // if Media was released, then node will be null and we need to create it again - if (!thisM.node) { - module.exports.create(win, lose, args); - } - - Media.onStatus(id, Media.MEDIA_STATE, Media.MEDIA_RUNNING); - - thisM.node.play(); - }, - - // Stops the playing audio - stopPlayingAudio:function(win, lose, args) { - var id = args[0]; - try { - (Media.get(id)).node.pause(); - (Media.get(id)).node.currentTime = 0; - Media.onStatus(id, Media.MEDIA_STATE, Media.MEDIA_STOPPED); - win(); - } catch (err) { - lose("Failed to stop: "+err); - } - }, - - // Seeks to the position in the audio - seekToAudio:function(win, lose, args) { - var id = args[0]; - var milliseconds = args[1]; - try { - (Media.get(id)).node.currentTime = milliseconds / 1000; - win(); - } catch (err) { - lose("Failed to seek: "+err); - } - }, - - // Pauses the playing audio - pausePlayingAudio:function(win, lose, args) { - var id = args[0]; - var thisM = Media.get(id); - try { - thisM.node.pause(); - Media.onStatus(id, Media.MEDIA_STATE, Media.MEDIA_PAUSED); - } catch (err) { - lose("Failed to pause: "+err); - } - }, - - // Gets current position in the audio - getCurrentPositionAudio:function(win, lose, args) { - var id = args[0]; - try { - var p = (Media.get(id)).node.currentTime; - Media.onStatus(id, Media.MEDIA_POSITION, p); - win(p); - } catch (err) { - lose(err); - } - }, - - // Start recording audio - startRecordingAudio:function(win, lose, args) { - var id = args[0]; - var src = args[1]; - - var normalizedSrc = src.replace(/\//g, '\\'); - var destPath = normalizedSrc.substr(0, normalizedSrc.lastIndexOf('\\')); - var destFileName = normalizedSrc.replace(destPath + '\\', ''); - - // Initialize device - Media.prototype.mediaCaptureMgr = null; - var thisM = (Media.get(id)); - var captureInitSettings = new Windows.Media.Capture.MediaCaptureInitializationSettings(); - captureInitSettings.streamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.audio; - thisM.mediaCaptureMgr = new Windows.Media.Capture.MediaCapture(); - thisM.mediaCaptureMgr.addEventListener("failed", lose); - - thisM.mediaCaptureMgr.initializeAsync(captureInitSettings).done(function (result) { - thisM.mediaCaptureMgr.addEventListener("recordlimitationexceeded", lose); - thisM.mediaCaptureMgr.addEventListener("failed", lose); - - // Start recording - Windows.Storage.ApplicationData.current.temporaryFolder.createFileAsync(destFileName, Windows.Storage.CreationCollisionOption.replaceExisting).done(function (newFile) { - recordedFile = newFile; - var encodingProfile = null; - switch (newFile.fileType) { - case '.m4a': - encodingProfile = Windows.Media.MediaProperties.MediaEncodingProfile.createM4a(Windows.Media.MediaProperties.AudioEncodingQuality.auto); - break; - case '.mp3': - encodingProfile = Windows.Media.MediaProperties.MediaEncodingProfile.createMp3(Windows.Media.MediaProperties.AudioEncodingQuality.auto); - break; - case '.wma': - encodingProfile = Windows.Media.MediaProperties.MediaEncodingProfile.createWma(Windows.Media.MediaProperties.AudioEncodingQuality.auto); - break; - default: - lose("Invalid file type for record"); - break; - } - thisM.mediaCaptureMgr.startRecordToStorageFileAsync(encodingProfile, newFile).done(win, lose); - }, lose); - }, lose); - }, - - // Stop recording audio - stopRecordingAudio:function(win, lose, args) { - var id = args[0]; - var thisM = Media.get(id); - - var normalizedSrc = thisM.src.replace(/\//g, '\\'); - var destPath = normalizedSrc.substr(0, normalizedSrc.lastIndexOf('\\')); - var destFileName = normalizedSrc.replace(destPath + '\\', ''); - - thisM.mediaCaptureMgr.stopRecordAsync().done(function () { - if (destPath) { - Windows.Storage.StorageFolder.getFolderFromPathAsync(destPath).done(function(destFolder) { - recordedFile.copyAsync(destFolder, destFileName, Windows.Storage.CreationCollisionOption.replaceExisting).done(win, lose); - }, lose); - } else { - // if path is not defined, we leave recorded file in temporary folder (similar to iOS) - win(); - } - }, lose); - }, - - // Release the media object - release:function(win, lose, args) { - var id = args[0]; - var thisM = Media.get(id); - try { - delete thisM.node; - } catch (err) { - lose("Failed to release: "+err); - } - }, - setVolume:function(win, lose, args) { - var id = args[0]; - var volume = args[1]; - var thisM = Media.get(id); - thisM.volume = volume; - } -}; - -require("cordova/exec/proxy").add("Media",module.exports); |
