import { Component } from '@angular/core'; import { HttpClient } from '@angular/common/http'; interface Music { name: string; url: string; picurl: string; artistsname: string; } @Component({ selector: 'app-music-player', templateUrl: './music-player.component.html', styleUrls: ['./music-player.component.scss'] }) export class MusicPlayerComponent { currentSong!: string; musicList: Music[] = []; currentIndex!: number; constructor(private http: HttpClient) { this.getMusicList(); } play() { const audioElement: HTMLAudioElement = document.getElementById('audio') as HTMLAudioElement; audioElement.play(); } pause() { const audioElement: HTMLAudioElement = document.getElementById('audio') as HTMLAudioElement; audioElement.pause(); } next() { this.currentIndex++; if (this.currentIndex >= this.musicList.length) { this.currentIndex = 0; } this.currentSong = this.musicList[this.currentIndex].url; const audioElement: HTMLAudioElement = document.getElementById('audio') as HTMLAudioElement; audioElement.src = this.currentSong; audioElement.play(); } getMusicList() { this.http.get<any>('https://api.uomg.com/api/rand.music?sort=热歌榜&format=json&mid=2642575625').subscribe( res => { const musicName = res.data.name; // 获取音乐名称 this.musicList = [{ name: musicName, // 将音乐名称赋值给name url: res.data.url, picurl: res.data.picurl, artistsname: res.data.artistsname }]; this.currentIndex = 0; this.currentSong = this.musicList[this.currentIndex].url; const audioElement: HTMLAudioElement = document.getElementById('audio') as HTMLAudioElement; audioElement.src = this.currentSong; }, error => { console.log('获取音乐列表失败', error); } ); } }
时间: 2024-04-10 13:31:22 浏览: 79
这是一个 Angular 组件,名为 MusicPlayerComponent。它通过 HttpClient 从一个 API 中获取音乐列表,并将其展示在页面上。这个组件包含了一些方法用于控制音乐播放,比如 play()、pause() 和 next()。在构造函数中调用了 getMusicList() 方法来获取音乐列表,并初始化了一些变量。
相关问题
While resolving: @angular/flex-layout@14.0.0-beta.40 npm ERR! Found: @angular/common@15.2.9
这是一个 NPM 包依赖问题,它提示你的应用程序正在尝试使用 @angular/flex-layout@14.0.0-beta.40 版本,但是它依赖于 @angular/common@15.2.9 版本,这两个版本是不兼容的。
你需要升级 @angular/common 模块的版本,以便与 @angular/flex-layout 包兼容。你可以使用以下命令升级 @angular/common 模块的版本:
```
npm install @angular/common@latest --save
```
然后重新安装 @angular/flex-layout 包:
```
npm install @angular/flex-layout@latest --save
```
这样应该可以解决你遇到的依赖问题。
angular出现while resolving: cop@0.0.0 npm err! found: @angular/common@11.2.14 npm err! node_modules/@angular/common npm err! @angular/common@"11.2.14" from the root project npm err! npm err! could not resolve dependency: npm err! peer @angular/common@"~9.
这是一个关于Angular的错误信息,大致意思是在解析依赖关系时出现了问题,提示找到了@angular/common@11.2.14版本,但是无法解决依赖关系中的peer @angular/common@"~9"版本。可能需要检查项目中的依赖关系和版本号是否正确。