annotate src/app/app.module.ts @ 31:f6ea31a3b1a3
Encapsulate audio playing and decoding logic in a ng2 service, provided by the root module.
author |
Lucas Thompson <dev@lucas.im> |
date |
Wed, 30 Nov 2016 10:21:27 +0000 |
parents |
3e96bcbfa5c5 |
children |
f6e58c2accb0 |
rev |
line source |
angular-cli@0
|
1 import { BrowserModule } from '@angular/platform-browser';
|
angular-cli@0
|
2 import { NgModule } from '@angular/core';
|
angular-cli@0
|
3 import { FormsModule } from '@angular/forms';
|
angular-cli@0
|
4 import { HttpModule } from '@angular/http';
|
angular-cli@0
|
5
|
angular-cli@0
|
6 import { AppComponent } from './app.component';
|
dev@31
|
7 import { MaterialModule } from "@angular/material";
|
dev@5
|
8 import { WaveformComponent } from './waveform/waveform.component';
|
dev@13
|
9 import { AudioFileOpenComponent } from './audio-file-open/audio-file-open.component';
|
dev@21
|
10 import { PlaybackControlComponent } from './playback-control/playback-control.component';
|
dev@31
|
11 import { AudioPlayerService } from "./services/audio-player.service";
|
dev@31
|
12
|
dev@31
|
13 function createAudioContext(): AudioContext {
|
dev@31
|
14 return new (
|
dev@31
|
15 (window as any).AudioContext
|
dev@31
|
16 || (window as any).webkitAudioContext
|
dev@31
|
17 )();
|
dev@31
|
18 }
|
angular-cli@0
|
19
|
angular-cli@0
|
20 @NgModule({
|
angular-cli@0
|
21 declarations: [
|
dev@1
|
22 AppComponent,
|
dev@13
|
23 WaveformComponent,
|
dev@21
|
24 AudioFileOpenComponent,
|
dev@21
|
25 PlaybackControlComponent
|
angular-cli@0
|
26 ],
|
angular-cli@0
|
27 imports: [
|
angular-cli@0
|
28 BrowserModule,
|
angular-cli@0
|
29 FormsModule,
|
dev@3
|
30 HttpModule,
|
dev@3
|
31 MaterialModule.forRoot()
|
angular-cli@0
|
32 ],
|
dev@1
|
33 providers: [
|
dev@31
|
34 {provide: HTMLAudioElement, useValue: new Audio()}, // TODO use something more generic than HTMLAudioElement
|
dev@31
|
35 {provide: 'AudioContext', useValue: createAudioContext()}, // use a string token, Safari doesn't seem to like AudioContext
|
dev@31
|
36 AudioPlayerService
|
dev@1
|
37 ],
|
angular-cli@0
|
38 bootstrap: [AppComponent]
|
angular-cli@0
|
39 })
|
dev@1
|
40 export class AppModule {
|
dev@1
|
41
|
dev@1
|
42 }
|