Amazon Vinyl
    Preparing search index...

    Function createVinylFactories

    • Creates the dependency factories for a standard player.

      Parameters

      Returns NoInfer<
          {
              adController: (deps: AdControllerImplDeps) => AdControllerImpl;
              adTrackLoadOptionsProvider: () => (
                  adInfo: AdInfo,
              ) => Promise<VinylTrackLoadOptions>;
              autoResetController: (
                  deps: AutoResetControllerImplDeps,
              ) => AutoResetControllerImpl;
              capabilities: (deps: CapabilitiesImplDeps) => CapabilitiesImpl;
              commonEme: () => CommonEme | null;
              createDashFactories: (
                  deps: DashFactoryDeps,
              ) => (
                  loadOptions: DashTrackLoadOptions,
              ) => NoInfer<
                  {
                      abr: (
                          deps: { options: ObservableValue<Pick<VinylOptions, "abr">> },
                      ) => ObservableValue<QualitySelectorImplOptions>;
                      adController: Factory;
                      allowedContentTypes: (
                          deps: {
                              options: ObservableValue<Pick<VinylOptions, "allowedContentTypes">>;
                          },
                      ) => ObservableValue<readonly RestrictableContentType[] | null>;
                      audio: (
                          deps: { options: ObservableValue<Pick<VinylOptions, "audio">> },
                      ) => ObservableValue<AudioOptions>;
                      baseContentTypesValue: (
                          deps: DashContentTypesValueDeps,
                      ) => ContentTypesValue;
                      baseUrlSelector: () => BaseUrlSelector;
                      capabilities: Factory;
                      contentStreamFactory: (
                          deps: {
                              createContentStreamFactories: (
                                  contentType: ContentType,
                              ) => Factories<ContentStreamImplDeps>;
                          },
                      ) => (contentType: ContentType) => ContentStreamImpl;
                      contentTypesValue: (
                          deps: AllowedContentTypesValueDeps,
                      ) => ContentTypesValue;
                      createContentStreamFactories: (
                          deps: DashContentStreamTrackDeps,
                      ) => MemoizedFunction & (
                          contentType: ContentType,
                      ) => NoInfer<
                          {
                              bufferingController: ...;
                              mediaSourceController: ...;
                              mediaTimelineTransformed: ...;
                              playbackController: ...;
                              qualitySelector: ...;
                              segmentController: ...;
                              sourceBufferControllerFactory: ...;
                          },
                      >;
                      drmController: Factory;
                      drmKeySystemResolver: Factory;
                      manifestController: (
                          deps: ManifestControllerImplDeps<DashManifestData>,
                      ) => ManifestControllerImpl<DashManifestData>;
                      manifestProvider: (
                          deps: { requestInterceptor: RequestInterceptor },
                      ) => DashManifestProvider;
                      manifestTransformed: (
                          deps: DashManifestTransformerDeps,
                      ) => ObservableValue<Promise<DashManifestData>>;
                      media: Factory;
                      mediaQualityMetadataResolver: (
                          deps: DashMediaQualityMetadataResolverDeps,
                      ) => DashMediaQualityMetadataResolver;
                      mediaSourceController: (
                          deps: MediaSourceControllerImplDeps,
                      ) => MediaSourceControllerImpl;
                      mediaSourceFactory: () => () => MediaSource;
                      mediaTimeline: (
                          deps: DashSegmentProviderDeps & {
                              manifestTransformed: ObservableValue<Promise<(...)>>;
                          },
                      ) => ObservableValue<Promise<MediaTimeline>>;
                      mediaTimelineTransformed: (
                          deps: DefaultMediaTimelineTransformerDeps,
                      ) => ObservableValue<Promise<MediaTimeline>>;
                      options: Factory<
                          ObservableValue<
                              Pick<
                                  VinylOptions,
                                  "text"
                                  | "audio"
                                  | "abr"
                                  | "allowedContentTypes",
                              >,
                          >,
                      >;
                      playbackController: Factory;
                      playbackSource: Factory;
                      qualitySelector: (
                          deps: { options: ObservableValue<Pick<VinylOptions, "abr">> },
                      ) => QualitySelectorImpl;
                      requestInterceptor: Factory;
                      segmentRequestInit: () => Maybe<Readonly<Omit<RequestInit, "signal">>>;
                      textTrackController: (
                          deps: {
                              manifestTransformed: ObservableValue<Promise<DashManifestData>>;
                              options: ObservableValue<Pick<VinylOptions, "text">>;
                              playbackController: PlaybackController;
                              textTrackProvider: MediaTextTrackProvider;
                              textTrackRenderer: TextTrackRenderer | null;
                          },
                      ) => SidecarTextTrackController;
                      textTrackProvider: Factory;
                      textTrackRenderer: Factory<TextTrackRenderer | null>;
                  },
              >;
              createHlsFactories: (
                  deps: HlsFactoryDeps,
              ) => (
                  loadOptions: HlsTrackLoadOptions,
              ) => NoInfer<
                  {
                      abr: (
                          deps: { options: ObservableValue<Pick<VinylOptions, "abr">> },
                      ) => ObservableValue<QualitySelectorImplOptions>;
                      adController: Factory;
                      allowedContentTypes: (
                          deps: {
                              options: ObservableValue<Pick<VinylOptions, "allowedContentTypes">>;
                          },
                      ) => ObservableValue<readonly RestrictableContentType[] | null>;
                      audio: (
                          deps: { options: ObservableValue<Pick<VinylOptions, "audio">> },
                      ) => ObservableValue<AudioOptions>;
                      baseContentTypesValue: (
                          deps: HlsContentTypesValueDeps,
                      ) => ContentTypesValue;
                      capabilities: Factory;
                      contentStreamFactory: (
                          deps: {
                              createContentStreamFactories: (
                                  contentType: ContentType,
                              ) => Factories<ContentStreamImplDeps>;
                          },
                      ) => (contentType: ContentType) => ContentStreamImpl;
                      contentTypesValue: (
                          deps: AllowedContentTypesValueDeps,
                      ) => ContentTypesValue;
                      createContentStreamFactories: (
                          deps: HlsContentStreamTrackDeps,
                      ) => MemoizedFunction & (
                          contentType: ContentType,
                      ) => NoInfer<
                          {
                              bufferingController: ...;
                              mediaSourceController: ...;
                              mediaTimelineTransformed: ...;
                              playbackController: ...;
                              qualitySelector: ...;
                              segmentController: ...;
                              sourceBufferControllerFactory: ...;
                          },
                      >;
                      drmController: Factory;
                      drmKeySystemResolver: Factory;
                      manifestController: (
                          deps: ManifestControllerImplDeps<HlsManifestData>,
                      ) => ManifestControllerImpl<HlsManifestData>;
                      manifestProvider: () => HlsManifestProvider;
                      manifestTransformed: (
                          deps: HlsManifestTransformerDeps,
                      ) => ObservableValue<Promise<HlsManifestData>>;
                      media: Factory;
                      mediaQualityMetadataResolver: () => HlsMediaQualityMetadataResolver;
                      mediaSourceController: (
                          deps: MediaSourceControllerImplDeps,
                      ) => MediaSourceControllerImpl;
                      mediaSourceFactory: () => () => MediaSource;
                      mediaTimeline: (
                          deps: BuildHlsMediaTimelineDeps & {
                              manifestTransformed: ObservableValue<Promise<(...)>>;
                          },
                      ) => ObservableValue<Promise<MediaTimeline>>;
                      mediaTimelineTransformed: (
                          deps: DefaultMediaTimelineTransformerDeps,
                      ) => ObservableValue<Promise<MediaTimeline>>;
                      options: Factory<
                          ObservableValue<
                              Pick<
                                  VinylOptions,
                                  "text"
                                  | "audio"
                                  | "abr"
                                  | "allowedContentTypes",
                              >,
                          >,
                      >;
                      playbackController: Factory;
                      playbackSource: Factory;
                      qualitySelector: (
                          deps: { options: ObservableValue<Pick<VinylOptions, "abr">> },
                      ) => QualitySelectorImpl;
                      requestInterceptor: Factory;
                      segmentRequestInit: () => Maybe<Readonly<Omit<RequestInit, "signal">>>;
                      textTrackController: (
                          deps: {
                              manifestTransformed: ObservableValue<Promise<HlsManifestData>>;
                              options: ObservableValue<Pick<VinylOptions, "text">>;
                              playbackController: PlaybackController;
                              textTrackProvider: MediaTextTrackProvider;
                              textTrackRenderer: TextTrackRenderer | null;
                          },
                      ) => SidecarTextTrackController;
                      textTrackProvider: Factory;
                      textTrackRenderer: Factory<TextTrackRenderer | null>;
                  },
              >;
              drmController: (deps: DrmControllerImplDeps) => DrmControllerImpl;
              drmKeySystemResolver: () => DrmKeySystemResolver;
              loudnessNormalizationController: (
                  deps: {
                      options: ObservableValue<Pick<VinylOptions, "loudnessNormalization">>;
                  },
              ) => LoudnessNormalizationControllerImpl;
              media: () => HTMLMediaElement;
              options: (
                  _deps: AnyRecord,
                  add: AddDisposable,
              ) => MutableValue<VinylOptions>;
              playbackController: (
                  deps: PlaybackControllerImplDeps,
              ) => PlaybackControllerImpl;
              playbackSource: (deps: PlaybackSourceImplDeps) => PlaybackSourceImpl;
              requestInterceptor: () => (..._: any[]) => void;
              textTrackProvider: (
                  deps: { media: HTMLMediaElement },
              ) => MediaTextTrackProvider;
              textTrackRenderer: () => TextTrackRenderer | null;
              trackController: (
                  deps: TrackControllerImplDeps<any>,
              ) => TrackControllerImpl<any>;
              trackFactory: (
                  deps: VinylTrackFactoryDeps,
              ) => TrackFactory<
                  | SourceObjectTrackLoadOptions
                  | SourceTrackLoadOptions
                  | DashTrackLoadOptions
                  | HlsTrackLoadOptions,
              >;
          },
      >