- - -
- - - Rocket Ship - - - - - - - - - - {{ title }} app is running! - - - Rocket Ship Smoke - - - + + + +
+
+ +
+
+

El agua no tiene nombre

+
+
+
+
- -

Resources

-

Here are some links to help you get started:

- -
- - - Learn Angular - - - - - CLI Documentation - - - - - - Angular Material - - - - - - Angular Blog - - - - - - Angular DevTools - - - +
+
+
+
+

Gracias a las personas que han hecho posible la elaboración de este podcast desde la delegación de CEAR Navarra.

+
+
+
- -

Next Steps

-

What do you want to do next with your app?

- - - -
- - - - - - - - - - - + +
+
+
+
+
+
+ - -
-
ng generate component xyz
-
ng add @angular/material
-
ng add @angular/pwa
-
ng add _____
-
ng test
-
ng build
+
+
+
+
+

Podcast {{n.title}}

+
+
- - -
+ +
+
+
+
+
+
+ - - - - - Gray Clouds Background - - - -
- - - - - - - - - - +
+
+
+
+

Gracias a las personas que han hecho posible la elaboración de este podcast desde la delegación de CEAR Navarra.

+

Este programa contó con la colaboración de Audio Laborategia elkartea para la realización de la pieza sonora a través de talleres de escucha y de creación colectiva.

+

En la realización sonora: Xabier Erkizia, Luca Rullo, Iñigo Telletxea y Juan Arnal.

+

El guion ha sido escrito colaborativamente junto a las mismas personas que han puesto su voz en la narración.

+
+
+
+
+ \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 28259a8..608376c 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,42 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; +import { PlayerService } from './player.service'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) -export class AppComponent { +export class AppComponent implements OnInit{ title = 'cear-rio'; + start:boolean = false; + randomPos:number = 0; + news:any[] = [{title:'1',random:0},{title:'1',random:0},{title:'1',random:0},{title:'1',random:0},{title:'1',random:0}] + + constructor( + public playerService:PlayerService + ) { + + playerService.init_app$ + .subscribe( + (res:any) => { + console.log('jsjs') + this.start = res; + } + ) + } + + ngOnInit(): void { + this.news.map( (n) => { + n.random = this.randomPos=this.randomPosition(); + }) + + } + + randomPosition():number { + let seed = Math.random(); + let max=100 + let min=-100 + // return (Math.floor(seed * 100)*(-1*Math.floor(seed*2))); + return Math.floor(Math.random() * (max - min + 1) + min) + } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index b1c6c96..d72c2ef 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -4,15 +4,23 @@ import { BrowserModule } from '@angular/platform-browser'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import { PlayerService } from './player.service'; +import { HttpClientModule } from '@angular/common/http'; +import { HeaderComponent } from './header/header.component'; + @NgModule({ declarations: [ - AppComponent + AppComponent, + HeaderComponent ], imports: [ BrowserModule, - AppRoutingModule + AppRoutingModule, + HttpClientModule + ], + providers: [ + PlayerService ], - providers: [], bootstrap: [AppComponent] }) export class AppModule { } diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html new file mode 100644 index 0000000..880de54 --- /dev/null +++ b/src/app/header/header.component.html @@ -0,0 +1,23 @@ +
+
+ +
+
+

El agua no tiene nombre

+
+
+ +
+
+
+
+ + + + + + stop + {{currentTime}}/{{duration}} + Soinumapa.net +
+
\ No newline at end of file diff --git a/src/app/header/header.component.scss b/src/app/header/header.component.scss new file mode 100644 index 0000000..10ff3b6 --- /dev/null +++ b/src/app/header/header.component.scss @@ -0,0 +1,22 @@ +section.header { + position:fixed; + z-index:20; + + &.player-container { + width:100%; + display: flex; + align-items: center; + flex-direction: column; + } + + ul { + list-style: none; + padding:0; + margin:0; + } + div.player { + padding:12px; + span { margin:0 12px;} + a { cursor:pointer;} + } +} \ No newline at end of file diff --git a/src/app/header/header.component.spec.ts b/src/app/header/header.component.spec.ts new file mode 100644 index 0000000..f8d8ed5 --- /dev/null +++ b/src/app/header/header.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HeaderComponent } from './header.component'; + +describe('HeaderComponent', () => { + let component: HeaderComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [HeaderComponent] + }); + fixture = TestBed.createComponent(HeaderComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/header/header.component.ts b/src/app/header/header.component.ts new file mode 100644 index 0000000..d67f91a --- /dev/null +++ b/src/app/header/header.component.ts @@ -0,0 +1,86 @@ +import { Component, OnInit} from '@angular/core'; +import { PlayerService } from '../player.service'; +import { Subject,Observable } from 'rxjs'; + +@Component({ + selector: 'app-header', + templateUrl: './header.component.html', + styleUrls: ['./header.component.scss'] +}) +export class HeaderComponent implements OnInit { + + start?:boolean; + delete:boolean = false; + isPlay:boolean = false; + isStop:boolean = false; + icy_metadata:string = ""; + title:string = ""; + duration = ""; + currentTime = ""; + init:boolean = false; + clicked:boolean = false; + + constructor( + public playerService:PlayerService + ) { + + playerService.init_app$ + .subscribe( + (res:any) => { + this.start = res; + } + ) + + /* subscribe to metada info */ + playerService.icy_metadata$ + .subscribe( + (res:any) => { + this.icy_metadata=res; + console.log('asdf') + } + ) + + /* subscribe isPlaying */ + playerService.audio_is_playing$ + .subscribe( + (res:any) => { + this.isPlay=res; + } + ) + /* subscribe timer */ + playerService.audio_current_time$ + .subscribe( + (res:any) => { + this.duration = res.duration; + this.currentTime = res.currentTime; + } + ) + } + + ngOnInit(): void { + } + + click():void { + this.clicked = true; + this.playerService.play("https://brba.audio-lab.org/stream/ura.mp3"); + } + + mute() { + this.playerService.mute() + this.delete = !this.delete; + } + + play() { + this.playerService.pause(); + } + + stop() { + this.playerService.restart(); + this.title=""; + this.icy_metadata=""; + this.currentTime=""; + this.duration=""; + } + +} + diff --git a/src/app/player.service.spec.ts b/src/app/player.service.spec.ts new file mode 100644 index 0000000..5355445 --- /dev/null +++ b/src/app/player.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PlayerService } from './player.service'; + +describe('PlayerService', () => { + let service: PlayerService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PlayerService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/player.service.ts b/src/app/player.service.ts new file mode 100644 index 0000000..53bf3de --- /dev/null +++ b/src/app/player.service.ts @@ -0,0 +1,325 @@ +import { Injectable, OnInit } from '@angular/core'; +import { HttpClient, HttpParams, HttpHeaders, HttpErrorResponse} from '@angular/common/http'; +import { Subject,Observable } from 'rxjs'; +import {environment} from '../environments/environment'; + +@Injectable() +export class PlayerService implements OnInit { + + audio; + audio_paused; + + audio_id?:any; + audio_title?:any; + audio_position?:any; + audio_status:string = "load"; + audio_elapsed?:any; + audio_duration?:any; + audio_url?:any; + audio_stopped; + audio_autoplay:boolean = false; + audio_buffered:number=-1; + public audio_icy="loading data..." + + metadataTimeout?:any; + + public player_minimized:boolean = false; + + /* initApp */ + private _init_app = new Subject(); + init_app$ = this._init_app.asObservable(); + + /* Metadata */ + private _icy_metadata = new Subject(); + icy_metadata$ = this._icy_metadata.asObservable(); + last_icy_metadata?:any; + + /* Playing */ + private _audio_is_playing = new Subject(); + public audio_is_playing$ = this._audio_is_playing.asObservable(); + + /* Time */ + private _audio_current_time = new Subject(); + public audio_current_time$ = this._audio_current_time.asObservable(); + + private _podcast = new Subject(); + podcast$ = this._podcast.asObservable(); + posts$?: Observable; + + constructor( + public http:HttpClient, + ) { + this.audio = new Audio(); + this.audio_paused = true; //audio not playing + this._audio_is_playing.next(this.audio_paused); + this.audio_stopped = true; + } + + ngOnInit() { + // https://developers.google.com/web/updates/2017/09/autoplay-policy-changes + //end audio play + this.audio_status = "init" + this.audio.onended = this.handleEnded.bind(this); + this.audio.oncanplay= this.handledCanPlay.bind(this); + //play updates + this.audio.ontimeupdate = this.handleTimeUpdate.bind(this); + this.audio.onwaiting = this.handleWaiting.bind(this); + this.audio.onloadedmetadata = this.handleLoadMetadata.bind(this); + } + + load(url:string) { + + this.audio.src = url; + this.audio.load(); + this.audio.ontimeupdate = this.handleTimeUpdate.bind(this); + this.audio.onloadstart = () => {this.audio_buffered = 0;}; + this.audio.onended = () => { this.play(environment.urlStream) }; + this.audio.onprogress = () => { this.onProgress() }; + + console.log(environment.urlStream) + + this.audio.oncanplay = () => { + // init player + this._init_app.next(true); + + this.audio_paused=false; + this._audio_is_playing.next(this.audio_paused); + + if (url===environment.urlStream) { + this.getStreamMetadata() + this.metadataTimeout = setInterval( () => { this.getStreamMetadata()}, 5000 ); + } else { + try { + clearInterval(this.metadataTimeout) + } catch (e) { + console.error("Clear Interval Error: "+e) + } + //console.log(this.audio) + // this._icy_metadata.next(); + // this._icy_metadata.next("Brba Podcast") + } + this.canPlay(); + }; + } + + public getStreamMetadata() { + this.http.get(environment.urlStreamMetadata) + .subscribe( (res:any) => { + let index + try { index = res['icestats']['source'].findIndex( (source:any) => source.server_name == "ura.mp3" ) } + catch (e) { index=0 } + + if (res['icestats']['source'][index]) { + //console.log(res.icestats.source[index].title) + this.audio_icy = res.icestats.source[index].title; + this._icy_metadata.next(res.icestats.source[index].title); + this.last_icy_metadata=res.icestats.source[index].title; + } + }) + } + + + public podcast(p:any) { + //console.log(p) + this._icy_metadata.next(p[0].acf.icy_metadata_identifier); + this._podcast.next(p) + } + + public getIcyMetadata() { + return this.audio_icy; + } + + public getBuffered() { + return Math.round(this.audio_buffered / this.audio.duration * 100); + } + + onProgress() { + + var duration = this.audio.duration; + + if (duration > 0) { + for (var i=0; i0) { + // //si le volvemos a enviar el id comprobamos si hay que cambiar + // if (!!id) { + // if (id!=this.audio_id) { + // this.audio_id=id; + // this.audio_title=title; + // this.audio_url=url.replace(/^http:\/\//i, 'https://'); + // this.load(this.audio_url); + // } + // else { this.canPlay(); } + // // si no hay id reconstruimos el objeto de audio + // } else { + // url = this.audio_url; + // title = this.audio_title; + // id = this.audio_id; + // this.canPlay(); + // } + // // no existe un audio en uso + // } else if (this.audio_url=="" || id!=this.audio_id) { + // //reload sound + // this.audio_id=id; + // this.audio_title=title; + // this.audio_url=url; + // this.load(url); + // } else { + // this.canPlay(); + // } + // } + + canPlay() { + this.audio_status = "canplay"; + var a = this.audio.play(); + try { + if (a!==undefined) { + a.then(_ => { + this.initPlayer(this.audio_title,this.audio_id); + }).catch(error=>{ + console.log(error) + console.log("not possible to play") + // show play button!!! + }); + } + } catch (e) { + /* firefox & old browsers not use Observale*/ + this.initPlayer(this.audio_title,this.audio_id); + } + } + + initPlayer(title:string,id:number) { + this.audio_title=title; + this.audio_stopped = false; + this.audio_paused = false; + this.audio_id = id; + //this.setAutoplay(); + } + + pause() { + + if (!this.audio_paused) { + this.audio.pause(); + } else { + this.audio.play(); + } + this.audio_paused = !this.audio_paused; + this._audio_is_playing.next(this.audio_paused); + + } + + mute() { + this.audio.muted = !this.audio.muted; + } + + stop() { + this.audio.onloadstart = null; + this.audio.oncanplay = null + this.audio.onprogress = null; + this.audio.pause(); + this.audio_buffered=-1 + this.audio.currentTime = 0; + this.audio.removeAttribute('src'); + this.audio.load(); + this.audio_paused = true; + this.audio_stopped = true; + this.audio_id = 0; + this.audio_url=""; + // Always playing + this.play(environment.urlStream) + } + + public isStopped():boolean { + return this.audio_stopped; + } + + public isPaused(id:number):boolean { + if (id==this.audio_id) { + return this.audio_paused; + } else { + return true; + } + } + + public getAudioID():number { + return this.audio_id; + } + + formatTime(seconds:number) { + let minutes:any = Math.floor(seconds / 60); + minutes = (minutes >= 10) ? minutes : "0" + minutes; + seconds = Math.floor(seconds % 60); + seconds = (seconds >= 10) ? seconds : 0 + seconds; + return minutes + ":" + seconds; + } + + setAutoplay() { + this.audio.autoplay = true; + } + + public getPercentDuration():number { + return (this.audio.currentTime / this.audio.duration) * 100; + } + + public setSeekPosition(rTime:number) { + this.audio.currentTime = this.audio.duration * rTime; + } + + handleStop() { + this.stop(); + } + + handleEnded(e:any) { + this.stop(); + this.audio_status = "finish"; + } + + handleTimeUpdate(e:any) { + this.audio_status = "playing"; + let elapsed = this.audio.currentTime; + let duration = this.audio.duration; + + + if (Number.isNaN(duration) || duration == Infinity || this.audio.src === environment.urlStream) duration=0; + if (elapsed) { + this.audio_position = elapsed / duration; + this.audio_elapsed = this.formatTime(elapsed); + this.audio_duration = this.formatTime(duration); + this._audio_current_time.next({currentTime: this.formatTime(elapsed), duration: this.formatTime(duration)}); + } + } + + handledCanPlay(e:any) { + console.log(e) + //play + } + + handleWaiting() { + this.audio_status = "waiting"; + } + + handleLoadMetadata(e:any) { + console.log(e) + } + + restart() { + this._icy_metadata.next(true) + this.play(environment.urlStream); + + } + +} \ No newline at end of file diff --git a/src/assets/img/island001.png b/src/assets/img/island001.png new file mode 100644 index 0000000000000000000000000000000000000000..2c04d6d16fff8476ab8cd2cfdb9a89509f079dae GIT binary patch literal 20287 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 iU5q$ApD^-~0paYzCgM + + + + + + + + + diff --git a/src/assets/img/island001b.svg b/src/assets/img/island001b.svg new file mode 100644 index 0000000..6987dd1 --- /dev/null +++ b/src/assets/img/island001b.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/island002.svg b/src/assets/img/island002.svg new file mode 100644 index 0000000..43d6f0a --- /dev/null +++ b/src/assets/img/island002.svg @@ -0,0 +1,67 @@ + + + + diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 0000000..1c9a8ae --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,11 @@ +export const environment = { + production: true, + uriDomain: "https://brba.audio-lab.org", + uriAPI: "https://brba.audio-lab.org/wp-json/wp/v2", + apiUrlUserActivation: 'https://brba.audio-lab.org/wp-json/ahum/v1/activation', + apiUrlUserSubscriptions: 'https://brba.audio-lab.org/wp-json/ahum/v1/subscriptions', + apiToken:'https://brba.audio-lab.org/wp-json/jwt-auth/v1/token', + apiAddSubscription: 'https://brba.audio-lab.org/wp-json/ahum/v1/subscription/add', + urlStreamMetadata: "https://brba.audio-lab.org/stream/status-json.xsl", + urlStream: "http://stream.piperrak.cc/ura.mp3", +}; \ No newline at end of file diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..856379e --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,24 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false, + uriDomain: "https://brba.audio-lab.org", + uriAPI: "https://brba.audio-lab.org/wp-json/wp/v2", + apiUrlUserActivation: 'https://brba.audio-lab.org/wp-json/ahum/v1/activation', + apiUrlUserSubscriptions: 'https://brba.audio-lab.org/wp-json/ahum/v1/subscriptions', + apiToken:'https://brba.audio-lab.org/wp-json/jwt-auth/v1/token', + apiAddSubscription: 'https://brba.audio-lab.org/wp-json/ahum/v1/subscription/add', + urlStreamMetadata: "https://brba.audio-lab.org/stream/status-json.xsl", + urlStream: "http://stream.piperrak.cc/ura.mp3", +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. \ No newline at end of file diff --git a/src/index.html b/src/index.html index 6afaa39..ab71672 100644 --- a/src/index.html +++ b/src/index.html @@ -1,8 +1,8 @@ - + - CearRio + El agua no tiene nombre | Soinumapa diff --git a/src/styles.scss b/src/styles.scss index 90d4ee0..6944afa 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1 +1,101 @@ /* You can add global styles to this file, and also import other style files */ +@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;900&family=Poppins&display=swap'); + + +body { + font-family:"Playfair Display",sans-serif; + color:#fff; + background:#29296d; + margin:0; + + h1 {font-weight: 600;} +} + + + +section.container { + &.big { min-height:100vh;} + &.middle { min-height: 50vh;} + &.fixed { + position:fixed; + width:100vw; + height:100vh; + top:0; + left:0; + padding:0; + margin:0; + z-index:-10; + } + &.header { + background:#29296d; + } + &.text { + background:#fff; + color:#29296d; + } + display:flex; + align-items: center; + position:sticky; + div.content { + flex:1; + display:flex; + align-items:center; + flex-direction: row; + div.col { + flex:1; + text-align: center; + flex-direction: column; + align-items: center; + display:flex; + &.priority { + div.button { + width:80%; + max-width:280px; + h1 { font-size:2rem;} + } + } + &.intro { + flex:2; + font-size:1.5rem; + } + } + div.button { + transition-duration: 1s; + + &:hover { + background:rgba(115, 124, 207,1); + transform: scale(1.2); + cursor:pointer; + } + + &.clicked { + transform: scale(20); + background:#fff; + transition-duration:2s; + * { opacity:0;} + &.hover { + } + } + + &.title { + //background-image:url('/assets/img/island002.svg'); + cursor:pointer; + } + background:rgba(115, 124, 207,0.5); + //background-color:transparent; + //background-image:url('/assets/img/island001.svg'); + background-size:contain; + background-repeat: no-repeat; + background-position: center center; + align-items: center; + aspect-ratio: 1; + max-width:60%; + &.big { max-width:auto;} + border-radius:100%; + display:flex; + text-align: center; + * { flex:1;} + h1 { padding:24px; font-size:1.2rem; } + } + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index ed966d4..b555532 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,3 @@ -/* To learn more about this file see: https://angular.io/config/tsconfig. */ { "compileOnSave": false, "compilerOptions": {