Commit 4eb9a32d authored by yu's avatar yu

1

parent 410914b8
import {Component, EventEmitter, Input, OnDestroy, OnInit, Output, NgZone, OnChanges} from '@angular/core'; import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, NgZone, OnChanges } from '@angular/core';
import {NzMessageService, NzNotificationService, UploadFile} from 'ng-zorro-antd'; import { NzMessageService, NzNotificationService, UploadFile } from 'ng-zorro-antd';
import {HttpClient, HttpEvent, HttpEventType, HttpRequest} from '@angular/common/http'; import { HttpClient, HttpEvent, HttpEventType, HttpRequest } from '@angular/common/http';
import {environment} from '../../../environments/environment'; import { environment } from '../../../environments/environment';
declare var Recorder; declare var Recorder;
...@@ -35,8 +35,14 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy { ...@@ -35,8 +35,14 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
set audioUrl(url) { set audioUrl(url) {
this._audioUrl = url; this._audioUrl = url;
if (url) { if (url) {
this.audio.src = this._audioUrl; this.httpHeadCall(this._audioUrl, flag => {
this.audio.load(); if (flag) {
this.audio.src = this._audioUrl;
} else {
this.audio.src = this._audioUrl.replace("_l.", ".");
}
this.audio.load();
});
} }
this.init(); this.init();
} }
...@@ -54,9 +60,9 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy { ...@@ -54,9 +60,9 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
audioBlob: any; audioBlob: any;
constructor( private nzMessageService: NzMessageService ) { constructor(private nzMessageService: NzMessageService) {
this.uploadUrl = (<any> window).courseware.uploadUrl(); this.uploadUrl = (<any>window).courseware.uploadUrl();
this.uploadData = (<any> window).courseware.uploadData(); this.uploadData = (<any>window).courseware.uploadData();
window['air'].getUploadCallback = (url, data) => { window['air'].getUploadCallback = (url, data) => {
this.uploadUrl = url; this.uploadUrl = url;
...@@ -64,6 +70,41 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy { ...@@ -64,6 +70,41 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
}; };
} }
httpHeadCall(requsetUrl: string, callback) {
let xhr = new XMLHttpRequest();
console.log("Status: Send Post Request to " + requsetUrl);
try {
xhr.onreadystatechange = () => {
try {
console.log('xhr.readyState: ', xhr.readyState);
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status < 400)) {
callback(true);
} else {
callback(false);
}
}
} catch (e) {
console.log(e)
}
};
xhr.open("HEAD", requsetUrl, true);
xhr.send();
xhr.timeout = 15000;
xhr.onerror = (e) => {
console.log("汪汪汪 posterror", e);
callback(false);
};
xhr.ontimeout = (e) => {
console.log("汪汪汪 ontimeout", e);
callback(false);
};
} catch (e) {
console.log("Send Get Request error: ", e)
}
}
init() { init() {
this.playIcon = 'play'; this.playIcon = 'play';
this.isPlaying = false; this.isPlaying = false;
...@@ -187,7 +228,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy { ...@@ -187,7 +228,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
this.nzMessageService.error('You can only upload Audio file ( mp3 | wav |ogg)'); this.nzMessageService.error('You can only upload Audio file ( mp3 | wav |ogg)');
return; return;
} }
const delta = 25; const delta = 25;
const isOverSize = (file.size / 1024 / 1024) < delta; const isOverSize = (file.size / 1024 / 1024) < delta;
if (!isOverSize) { if (!isOverSize) {
this.nzMessageService.error(`audio file must smaller than ${delta}MB!`); this.nzMessageService.error(`audio file must smaller than ${delta}MB!`);
...@@ -226,7 +267,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy { ...@@ -226,7 +267,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
p = 0; p = 0;
} }
// console.log(Math.floor(p * 100)); // console.log(Math.floor(p * 100));
this.progress = Math.floor(p * 100); this.progress = Math.floor(p * 100);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment