diff --git a/src/core/annotation.js b/src/core/annotation.js index 6761df712..8eed43b5e 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -19,6 +19,7 @@ import { AnnotationEditorType, AnnotationFieldFlag, AnnotationFlag, + AnnotationRenditionOperation, AnnotationReplyType, AnnotationType, assert, @@ -290,6 +291,9 @@ class AnnotationFactory { case "RichMedia": return new RichMediaAnnotation(parameters); + case "Screen": + return new ScreenAnnotation(parameters); + default: if (!collectFields) { if (!subtype) { @@ -5457,13 +5461,124 @@ class FileAttachmentAnnotation extends MarkupAnnotation { } } -class RichMediaAnnotation extends Annotation { +/** + * Shared base for annotations that play an embedded audio/video clip: + * `RichMedia` (via `RichMediaContent`) and `Screen` (via a rendition action). + * Both resolve a single embedded media file and expose it identically through + * `data.richMedia`, so the display layer can render them with one element. + */ +class MediaAnnotation extends Annotation { + // The MIME types we can build a `