Skip to content

Instantly share code, notes, and snippets.

@perspolice
Created March 17, 2017 10:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save perspolice/f8580f891b4dc54a6a3228038af2f5a9 to your computer and use it in GitHub Desktop.
Save perspolice/f8580f891b4dc54a6a3228038af2f5a9 to your computer and use it in GitHub Desktop.
import { Http, Headers, ResponseContentType } from '@angular/http';
import { Component } from '@angular/core';
import {
NavController,
AlertController,
Platform
} from 'ionic-angular';
import { Injectable } from '@angular/core';
import {
MediaPlugin,
Device,
File
} from 'ionic-native';
import { AppConstants } from '../../app/app.constants';
import { TextSpeechApi } from '../../app/service.textSpeechApi';
import {
message
} from '../../app/app.datatypes';
import Rx from 'rxjs/Rx';
declare var cordova: any;
declare var window: any;
@Injectable()
export class AudioPlayer {
constructor(private http: Http) {
}
}
//public playAudio(){}
let parsedMessage = JSON.parse(message["data"]).activities[0];
this.AudioPlayer.TextRecognise(parsedMessage.attachments[0].content.text)
.subscribe(res => {
console.log(res);
let errorFunc = function (err) {
console.log(err);
}
window.requestFileSystem(window.PERSISTENT, 5 * 1024 * 1024, function (fs) {
console.log('file system open: ' + fs.name);
createFile(fs.root, "tmp.mp3", res.arrayBuffer(), false);
}, errorFunc);
let createFile = function (dirEntry, fileName, data, isAppend) {
// Creates a new file or returns the file if it already exists.
dirEntry.getFile(fileName, { create: true, exclusive: false }, function (fileEntry) {
writeFile(fileEntry, data, isAppend);
}, errorFunc);
}
let writeFile = function (fileEntry, dataObj, isAppend) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function () {
console.log("Successful file write...");
const onStatus = (status) => console.log(status);
let fileUrl = fileEntry.toNativeURL();
const file = new MediaPlugin(fileUrl, onStatus);
file.init.then((file) => {
console.log(file);
}, (err) => {
console.log('somthing went wrong! error code: ' + err.code + ' message: ' + err.message);
});
file.play();
};
fileWriter.onerror = function (e) {
console.log("Failed file write: " + e.toString());
};
// If data object is not passed in,
// create a new Blob instead.
fileWriter.write(dataObj, isAppend);
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment