@@ -19,7 +19,7 @@ import type { MediaClipProps } from './media.interfaces';
1919
2020
2121export class MediaClip < Props extends MediaClipProps = MediaClipProps > extends Clip < MediaClipProps > {
22- public readonly source = new AudioSource ( ) ;
22+ public source = new AudioSource ( ) ;
2323 public declare element ?: HTMLAudioElement | HTMLVideoElement ;
2424
2525 @serializable ( Timestamp )
@@ -42,16 +42,22 @@ export class MediaClip<Props extends MediaClipProps = MediaClipProps> extends Cl
4242 @serializable ( RangeDeserializer )
4343 public range : [ Timestamp , Timestamp ] = [ new Timestamp ( ) , this . duration ] ;
4444
45+ public constructor ( props : MediaClipProps = { } ) {
46+ super ( ) ;
47+
48+ Object . assign ( this , props ) ;
49+ }
50+
4551 /**
4652 * Defines the transcript of the video/audio
4753 */
4854 @serializable ( Transcript )
49- public transcript ?: Transcript ;
55+ public get transcript ( ) : Transcript | undefined {
56+ return this . source . transcript ;
57+ } ;
5058
51- public constructor ( props : MediaClipProps = { } ) {
52- super ( ) ;
53-
54- Object . assign ( this , props ) ;
59+ public set transcript ( transcript : Transcript | undefined ) {
60+ this . source . transcript = transcript ;
5561 }
5662
5763 public get start ( ) : Timestamp {
@@ -234,7 +240,7 @@ export class MediaClip<Props extends MediaClipProps = MediaClipProps> extends Cl
234240
235241 public copy ( ) : MediaClip {
236242 const clip = MediaClip . fromJSON ( JSON . parse ( JSON . stringify ( this ) ) ) ;
237- clip . transcript = this . transcript ;
243+ clip . source = this . source ;
238244 return clip ;
239245 }
240246
0 commit comments