要解决这个问题,您可以使用Angular的双向绑定来监视src的变化,并在发生变化时更新视频元素。以下是一个示例解决方法:
在您的组件中,首先导入ViewChild和ElementRef:
import { Component, ViewChild, ElementRef } from '@angular/core';
然后,在组件类中,使用ViewChild装饰器来获取对HTML视频元素的引用:
@Component({
selector: 'app-video',
templateUrl: './video.component.html',
styleUrls: ['./video.component.css']
})
export class VideoComponent {
@ViewChild('videoPlayer', { static: true }) videoPlayer: ElementRef;
src: string;
constructor() {
// 初始化src
this.src = 'path/to/initial/video.mp4';
}
// 当src变化时调用此方法
updateVideo() {
const video = this.videoPlayer.nativeElement;
video.src = this.src;
video.load();
}
}
在HTML模板中,假设您有一个按钮,当点击时会更改src并调用updateVideo方法:
在上面的代码中,当点击按钮时,src被更改为新的视频路径,并调用updateVideo方法。在updateVideo方法中,我们获取视频元素的引用,并将新的src赋值给它。然后,我们调用video元素的load方法来重新加载视频。
这样,当src变化时,HTML视频元素将相应地更改视频。