Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
34 changes: 33 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@
url = https://github.com/THEOplayer/react-native-theoplayer.git
branch = 9.x
shallow = true
[submodule "react-native-v10"]
path = theoplayer_versioned_docs/version-v10/external/react-native-theoplayer
url = https://github.com/THEOplayer/react-native-theoplayer.git
branch = 10.x
shallow = true
[submodule "flutter"]
path = theoplayer/external/flutter-theoplayer-sdk
url = https://github.com/THEOplayer/flutter-theoplayer-sdk.git
Expand All @@ -46,6 +51,11 @@
url = https://github.com/THEOplayer/flutter-theoplayer-sdk.git
branch = 9.x
shallow = true
[submodule "flutter-v10"]
path = theoplayer_versioned_docs/version-v10/external/flutter-theoplayer-sdk
url = https://github.com/THEOplayer/flutter-theoplayer-sdk.git
branch = 10.x
shallow = true
[submodule "web-connectors"]
path = theoplayer/external/web-connectors
url = https://github.com/THEOplayer/web-connectors.git
Expand All @@ -65,6 +75,11 @@
url = https://github.com/THEOplayer/web-connectors.git
branch = main
shallow = true
[submodule "web-connectors-v10"]
path = theoplayer_versioned_docs/version-v10/external/web-connectors
url = https://github.com/THEOplayer/web-connectors.git
branch = main
shallow = true
[submodule "android-connector"]
path = theoplayer/external/android-connector
url = https://github.com/THEOplayer/android-connector.git
Expand All @@ -83,6 +98,12 @@
path = theoplayer_versioned_docs/version-v9/external/android-connector
url = https://github.com/THEOplayer/android-connector.git
branch = 9.x
shallow = true
[submodule "android-connector-v10"]
path = theoplayer_versioned_docs/version-v10/external/android-connector
url = https://github.com/THEOplayer/android-connector.git
branch = 10.x
shallow = true
[submodule "ios-connector"]
path = theoplayer/external/iOS-Connector
url = https://github.com/THEOplayer/iOS-Connector.git
Expand All @@ -101,6 +122,12 @@
path = theoplayer_versioned_docs/version-v9/external/iOS-Connector
url = https://github.com/THEOplayer/iOS-Connector.git
branch = 9.x
shallow = true
[submodule "ios-connector-v10"]
path = theoplayer_versioned_docs/version-v10/external/iOS-Connector
url = https://github.com/THEOplayer/iOS-Connector.git
branch = 10.x
shallow = true
[submodule "react-native-connectors"]
path = theoplayer/external/react-native-connectors
url = https://github.com/THEOplayer/react-native-connectors.git
Expand All @@ -121,6 +148,11 @@
url = https://github.com/THEOplayer/react-native-connectors.git
branch = main
shallow = true
[submodule "react-native-connectors-v10"]
path = theoplayer_versioned_docs/version-v10/external/react-native-connectors
url = https://github.com/THEOplayer/react-native-connectors.git
branch = main
shallow = true
[submodule "web-ui"]
path = open-video-ui/external/web-ui
url = https://github.com/THEOplayer/web-ui.git
Expand All @@ -132,4 +164,4 @@
[submodule "react-native-theoplayer-ui"]
path = open-video-ui/external/react-native-theoplayer-ui
url = https://github.com/THEOplayer/react-native-theoplayer-ui.git
branch = main
branch = main
12 changes: 9 additions & 3 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,19 +156,25 @@ const config: Config = {
path: 'theoplayer',
routeBasePath: '/theoplayer',
sidebarPath: './sidebarsTheoplayer.ts',
lastVersion: 'current',
lastVersion: 'v10',
includeCurrentVersion: !isProductionDeployment,
onlyIncludeVersions: isProductionDeployment
? undefined
: // v6 and v7 aren't being updated anymore.
// We still have links to v4 and v8 docs, so we always need to build those.
['current', 'v9', 'v8', 'v4'],
['current', 'v10', 'v9', 'v8', 'v4'],
versions: {
current: {
label: fs.readFileSync(path.join(__dirname, 'theoplayer/version.txt'), 'utf8').trim(),
},
v10: {
label: fs.readFileSync(path.join(__dirname, 'theoplayer_versioned_docs/version-v10/version.txt'), 'utf8').trim(),
banner: 'none',
noIndex: true,
},
v9: {
label: fs.readFileSync(path.join(__dirname, 'theoplayer_versioned_docs/version-v9/version.txt'), 'utf8').trim(),
banner: 'none',
banner: 'unmaintained',
noIndex: true,
},
v8: {
Expand Down
2 changes: 1 addition & 1 deletion theoplayer/examples/01-basic.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_custom_props: { icon: '▶️' }
import useBaseUrl from '@docusaurus/useBaseUrl';
import styles from './shared.module.css';

<iframe className={styles.player} src={useBaseUrl('/theoplayer/v10/examples/basic/demo.html')}></iframe>
<iframe className={styles.player} src={useBaseUrl('/theoplayer/v11/examples/basic/demo.html')}></iframe>

<details>
<summary>Code</summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ THEOplayer's workaround involves playback in full-window, which sets THEOplayer'

Note that this solution keeps the THEOplayer UI intact, but doesn't get rid of the address bar as desired in some cases.

Alternatively, developers can use the [allowNativeFullscreen](pathname:///theoplayer/v10/api-reference/web/interfaces/PlayerConfiguration.html#allowNativeFullscreen) property mentioned here, which pushes the video element to fullscreen as seen below.
Alternatively, developers can use the [allowNativeFullscreen](pathname:///theoplayer/v11/api-reference/web/interfaces/PlayerConfiguration.html#allowNativeFullscreen) property mentioned here, which pushes the video element to fullscreen as seen below.

```js
<script>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This question may be asked when you observe a different behavior of the Visibility API on different browsers.

The [Visibility API](pathname:///theoplayer/v10/api-reference/web/interfaces/Visibility.html) provides developers a way to observe how much of the player is visible.
The [Visibility API](pathname:///theoplayer/v11/api-reference/web/interfaces/Visibility.html) provides developers a way to observe how much of the player is visible.

When the player is embedded in an iframe, this API does not work on Safari and IE11. This depends on the fact that the player uses the [Intersection Observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Browser_compatibility) if it's available in the browser. Unfortunately, IE and Safari do not have support for this, so the player necessarily falls back to scroll events for these environments.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ The TextTrack API is used to retrieve the timed metadata. A MetadataTextTrack wi
The following resources provide more information:

- [HLS Specification - #EXT-X-DATERANGE](https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-04#section-4.4.2.7)
- [API reference - TextTrackType](pathname:///theoplayer/v10/api-reference/web/types/TextTrackType.html)
- [API reference - TextTrackType](pathname:///theoplayer/v11/api-reference/web/types/TextTrackType.html)
2 changes: 1 addition & 1 deletion theoplayer/faq/36-can-clipping-be-used-in-a-playlist.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ Notes:

The following resources provide more information:

API reference - [Clip API](pathname:///theoplayer/v10/api-reference/web/interfaces/Clip.html)
API reference - [Clip API](pathname:///theoplayer/v11/api-reference/web/interfaces/Clip.html)

<!-- https://demo.theoplayer.com/playlist: Demo page - Playlist -->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ The following resources provide more information:

- [Preloading - How to](../how-to-guides/07-miscellaneous/09-preloading.md)
- [What are the benefits of preloading?](38-what-are-the-benefits-of-preloading.md)
- [PreloadType API reference](pathname:///theoplayer/v10/api-reference/web/types/PreloadType.html)
- [PreloadType API reference](pathname:///theoplayer/v11/api-reference/web/types/PreloadType.html)
6 changes: 3 additions & 3 deletions theoplayer/faq/38-what-are-the-benefits-of-preloading.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ The following resources provide more information:

- https://www.w3.org/TR/html5/embedded-content-0.html#attr-media-preload: HTML5 specification
- [Preloading - How-to](../how-to-guides/07-miscellaneous/09-preloading.md)
- [API reference: preloading](pathname:///theoplayer/v10/api-reference/web/types/PreloadType.html)
- [API reference: Cache API](pathname:///theoplayer/v10/api-reference/web/interfaces/Cache.html)
- [API reference: Canvas API](pathname:///theoplayer/v10/api-reference/web/interfaces/Canvas.html)
- [API reference: preloading](pathname:///theoplayer/v11/api-reference/web/types/PreloadType.html)
- [API reference: Cache API](pathname:///theoplayer/v11/api-reference/web/interfaces/Cache.html)
- [API reference: Canvas API](pathname:///theoplayer/v11/api-reference/web/interfaces/Canvas.html)
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ The player events and `<video>` element events `seeking` and `seeked` should beh
The following resources provide more information:

- https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events: MDN reference
- [Player API reference](pathname:///theoplayer/v10/api-reference/web/classes/Player.html)
- [Player API reference](pathname:///theoplayer/v11/api-reference/web/classes/Player.html)
2 changes: 1 addition & 1 deletion theoplayer/faq/40-can-we-use-hls-or-dash-ads.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,5 @@ If your reason for using HLS ads is the wish to use ABR to be more flexible rega
The following resources provide more information:

- [IAB Standards, Guidelines & Best Practices](https://www.iab.com/guidelines/?post_type=iab_guideline)
- [API reference – Ads interface](pathname:///theoplayer/v10/api-reference/web/interfaces/Ads.html)
- [API reference – Ads interface](pathname:///theoplayer/v11/api-reference/web/interfaces/Ads.html)
- [THEOplayer Advertising User Guide](../knowledge-base/01-advertisement/01-user-guide.md)
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ The opposite event, online, is also present in the API, and it is Thrown to indi

The following resources provide more information:

- [Network API events](pathname:///theoplayer/v10/api-reference/web/interfaces/NetworkEventMap.html)
- [Network API events](pathname:///theoplayer/v11/api-reference/web/interfaces/NetworkEventMap.html)
- [Network: How to use the Network API](../how-to-guides/08-network/00-introduction.md)
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Back to our specific use case, once you have determined that your mp4 returns a

The following resources provide more information:

- [API reference - Network API events](pathname:///theoplayer/v10/api-reference/web/interfaces/NetworkEventMap.html)
- [API reference - Network API events](pathname:///theoplayer/v11/api-reference/web/interfaces/NetworkEventMap.html)
- [How to use Network API](../how-to-guides/08-network/00-introduction.md)
- [What does the error message "Something went wrong with Native playback" mean?](19-what-does-error-something-went-wrong-during-playback-mean.md)
- [Demo page - Adding buttons and text to the default UI](http://demo.theoplayer.com/adding-buttons-text-overlay-to-theoplayer)
Expand Down
2 changes: 1 addition & 1 deletion theoplayer/faq/48-prevent-up-next-from-redirecting.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ This is done by setting the value of the countdownDuration property of your UpNe

The following resources provide more information:

- [API reference](pathname:///theoplayer/v10/api-reference/web/interfaces/UpNextPanel.html#countdownDuration)
- [API reference](pathname:///theoplayer/v11/api-reference/web/interfaces/UpNextPanel.html#countdownDuration)
- [Demo page – Up Next](https://www.theoplayer.com/theoplayer-demo-up-next)
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ The following resources provide more information:
- [Preloading - how to](../how-to-guides/07-miscellaneous/09-preloading.md)
- [Demo page](https://demo.theoplayer.com/preloading-vod)
- [What are the benefits of preloading](38-what-are-the-benefits-of-preloading.md)
- [API reference - PreloadType](pathname:///theoplayer/v10/api-reference/web/types/PreloadType.html)
- [API reference - PreloadType](pathname:///theoplayer/v11/api-reference/web/types/PreloadType.html)
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,5 @@ The following resources provide more information:
- [Stop autoplay videos in Safari on Mac](https://support.apple.com/en-gb/guide/safari/ibrw29c6ecf8/mac)
- [Allow or block media autoplay in Firefox](https://support.mozilla.org/en-US/kb/block-autoplay)
- [How does Media Engagement Index (MEI) affect Autoplay on Chrome?](17-how-does-mei-affect-autoplay-on-chrome.md)
- [API reference - mutedAutoplay](pathname:///theoplayer/v10/api-reference/web/interfaces/PlayerConfiguration.html#mutedAutoplay)
- [API reference - mutedAutoplay](pathname:///theoplayer/v11/api-reference/web/interfaces/PlayerConfiguration.html#mutedAutoplay)
- [How to combat autoplay policies](02-how-to-combat-autoplay-policies.md)
4 changes: 2 additions & 2 deletions theoplayer/faq/53-theoplayer-features-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Once you're there, you further navigate to your desired SDK and check how you've

If you're a developer (and you're only interested in this answer for the THEOplayer Web SDK),
then you can also figure this out at runtime through JavaScript.
You can call [`THEOplayer.features`](pathname:///theoplayer/v10/api-reference/web/variables/features.html) to identify which features are enabled.
You can call [`THEOplayer.features`](pathname:///theoplayer/v11/api-reference/web/variables/features.html) to identify which features are enabled.

```js
THEOplayer.features;
Expand All @@ -45,5 +45,5 @@ After optimizing your SDK, by enabling and disabling certain features, you might
- You could [measure the loading time of your THEOplayer library](https://codesandbox.io/s/github/THEOplayer/samples-web?file=/reference-apps/utility/measure-loading-time/index.html).

Note that optimizing a video player goes way beyond reducing your file size.
As a developer, you could consider [async library loading](https://demo.theoplayer.com/async-library-loading), you could change your [ABR strategy](pathname:///theoplayer/v10/api-reference/web/types/ABRStrategyType.html) (as [demonstrated](https://demo.theoplayer.com/increase-viewer-experience-optimizing-video-abr)),
As a developer, you could consider [async library loading](https://demo.theoplayer.com/async-library-loading), you could change your [ABR strategy](pathname:///theoplayer/v11/api-reference/web/types/ABRStrategyType.html) (as [demonstrated](https://demo.theoplayer.com/increase-viewer-experience-optimizing-video-abr)),
you want to optimize your [time-to-first-frame](../how-to-guides/09-player/02-how-to-measure-time-to-first-frame.md), and much more!
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Why is my PlayReady stream not working in Chromium Edge?

If you are having problems playing PlayReady streams in Chromium Edge, this may be due to a conflict between player and browser, regarding the DRM system to use. If this is the case, you may solve the issue indicating Playready as your first option with the [_preferredKeySystems_ property](pathname:///theoplayer/v10/api-reference/web/interfaces/DRMConfiguration.html#preferredkeysystems).
If you are having problems playing PlayReady streams in Chromium Edge, this may be due to a conflict between player and browser, regarding the DRM system to use. If this is the case, you may solve the issue indicating Playready as your first option with the [_preferredKeySystems_ property](pathname:///theoplayer/v11/api-reference/web/interfaces/DRMConfiguration.html#preferredkeysystems).

## Long Answer

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ THEOplayer offers documentation and resources through a number of channels.
- FAQ articles that address specific questions (e.g. [what is an impression](12-what-is-an-impression.md), [is portrait mode supported](61-is-portrait-mode-supported.md), ...)
- Knowledge base articles that explain media streaming concepts or related topics (e.g. [AES-128](../knowledge-base/02-content-protection/02-aes-128-encryption.md), [CORS](../knowledge-base/05-cors/00-introduction.md), ...)
- [Changelog](../changelog.md) that lists the release notes of our SDKs
- API references that document APIs per SDK (e.g. [Web](pathname:///theoplayer/v10/api-reference/web/), [iOS](pathname:///theoplayer/v10/api-reference/ios/), [Android](pathname:///theoplayer/v10/api-reference/android/))
- API references that document APIs per SDK (e.g. [Web](pathname:///theoplayer/v11/api-reference/web/), [iOS](pathname:///theoplayer/v11/api-reference/ios/), [Android](pathname:///theoplayer/v11/api-reference/android/))
- Our Github at https://github.com/THEOplayer contains
- Samples for all SDKs (e.g. [Basic playback in Android](https://github.com/THEOplayer/samples-android-sdk/tree/master/Basic-Playback), [Google IMA in iOS](https://github.com/THEOplayer/samples-ios-sdk/tree/master/Google-IMA), ...)
- Sample connectors to integration analytics (e.g. [Conviva](https://github.com/THEOplayer/sample-conviva-analytics-html5-sdk)) and [DRM connectors](https://github.com/THEOplayer/samples-drm-integration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ In THEOplayer, `player.source.sources` can be used to provide alternative source

The player will select the first source (top to bottom) of a type that is supported on the current platform and try to play it. The player will <u>not</u> automatically select a new source from the list if the current one is failing to play for any reason unrelated to platform support.

You can also find out which the source is that the player selects with the `currentsourcechange` event ([documentation](pathname:///theoplayer/v10/api-reference/web/interfaces/CurrentSourceChangeEvent.html)).
You can also find out which the source is that the player selects with the `currentsourcechange` event ([documentation](pathname:///theoplayer/v11/api-reference/web/interfaces/CurrentSourceChangeEvent.html)).

A few additional notes:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

It is possible to distinguish between when the quality is changed by ABR or by the user and, in the latter case, which quality has been selected.

This can be easily achieved listening to the `targetqualitychanged` event ([documentation](pathname:///theoplayer/v10/api-reference/web/interfaces/TargetQualityChangedEvent.html)) such as in the snippet below:
This can be easily achieved listening to the `targetqualitychanged` event ([documentation](pathname:///theoplayer/v11/api-reference/web/interfaces/TargetQualityChangedEvent.html)) such as in the snippet below:

```js
player.videoTracks[0].addEventListener('targetqualitychanged', (e) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@ var element = document.querySelector('.theoplayer-container');

#### Create THEOplayer instance

The snippet below creates a THEOplayer instance for a container with a specific [Player Configuration](pathname:///theoplayer/v10/api-reference/web/interfaces/PlayerConfiguration.html).
The snippet below creates a THEOplayer instance for a container with a specific [Player Configuration](pathname:///theoplayer/v11/api-reference/web/interfaces/PlayerConfiguration.html).

```js
var player = new THEOplayer.Player(element, {
Expand Down Expand Up @@ -458,7 +458,7 @@ Additionally, some of these workers leverage [WebAssembly](https://developer.moz
- `THEOplayer.transmux.wasm`: the WebAssembly binary for transmuxing MPEG-TS and AAC files.

These files need to be hosted on your app's server, so the main THEOplayer library can locate and load them when needed.
You tell THEOplayer where you put those files by setting the `libraryLocation` in your [player configuration](pathname:///theoplayer/v10/api-reference/web/interfaces/PlayerConfiguration.html).
You tell THEOplayer where you put those files by setting the `libraryLocation` in your [player configuration](pathname:///theoplayer/v11/api-reference/web/interfaces/PlayerConfiguration.html).

JavaScript bundlers work by traversing your app's dependencies through `import` or `require()` statements in your source code.
As such, they can't auto-magically detect that THEOplayer needs these extra files, since they are never directly imported.
Expand Down Expand Up @@ -617,5 +617,5 @@ var player = new THEOplayer.Player(element, {
Ready to learn more?

- Go through our [how-to guides](../../../how-to-guides/index.mdx) to learn about [UI customization](../../../how-to-guides/11-ui/00-introduction.md), [advertising](../../../how-to-guides/01-ads/00-introduction.md), [DRM](../../../how-to-guides/04-drm/00-introduction.md), [casting](../../../how-to-guides/03-cast/01-chromecast/00-introduction.md), [analytics](../../../how-to-guides/02-analytics/00-introduction.md) and other topics.
- Check out our [API reference](pathname:///theoplayer/v10/api-reference/web/classes/ChromelessPlayer.html).
- Check out our [API reference](pathname:///theoplayer/v11/api-reference/web/classes/ChromelessPlayer.html).
- Try out samples from our [GitHub](https://github.com/THEOplayer).
Loading
Loading