Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

THEOplayer 8.6.0 #171

Merged
merged 1 commit into from
Dec 4, 2024
Merged
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
  •  
  •  
  •  
60 changes: 60 additions & 0 deletions theoplayer/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,66 @@ sidebar_custom_props: { 'icon': '📰' }
toc_max_heading_level: 2
---

## 🚀 8.6.0 (2024/12/04)

### General

#### 🐛 Issues

- Fixed an issue where the minimum and maximum playback rate in the latency configuration for an HESP stream were incorrectly reset after a buffer stall.
- Fixed an issue where no DRM license requests were sent for a DASH stream for which adaptation set switching is enabled and the PSSH does not appear inside the initialization segment. This relates to both web and Android.

### Web

#### 💥 Breaking Changes

- Removed currentServerLiveTime and currentLatency from experimental HESP API in favor of the latency API.

#### ✨ Features

- Added ad events for alternative THEOads ad sources.
- Exposed `description` on `GoogleImaAd`.
- Added the `player.addTextTrack()` API to be able to create an external text track. This track is mutable and can be filled with cues, allowing 3rd parties to add subtitles to the player in real-time.
- Added support for passing a `latencyConfiguration` in HESP and THEOlive sources.

#### 🐛 Issues

- Fixed an issue where the `adend` and `adbreakend` events were not dispatched correctly when a THEOads adbreak ended.
- Fixed an issue where the player did not fire seeking and seeked events when seeking using the seek bar in the native fullscreen UI on iOS Safari (when allowNativeFullscreen is set to true).
- Added the `useAdUiElementForSsai` flag to the `GoogleImaConfiguration` player config to enable use of an ad UI element for Google DAI to allow ads with extra UI to be displayed, which is required in the EU. Note that enabling this flag disables THEO's default clickthrough element which had improved keyboard accessibility over the DAI ad ui element.

#### 👎 Deprecations

- Deprecated streamName for Millicast sources in favor of the src property.
- Deprecated integration `theolive` in favor of type `theolive` for THEOlive sources.

### Android

#### ✨ Features

- Added support for CEAX08 subtitles for HESP and THEOlive streams.

#### 🐛 Issues

- Fixed an issue where the UI overlay was not registered as a "friendly" obstruction with Google IMA and Google DAI.
- Fixed an issue where creating a CachingTask would cause a crash.

#### 👎 Deprecations

- Deprecated `MillicastSource.Credential` in favor of `src` and inlined properties `streamAccountId`, `apiUrl` and `subscriberToken` directly on `MillicastSource`.

### iOS

#### ✨ Features

- Added a THEOlive integration with a `TheoLiveSource` to play channels from [https://theo.live](https://theo.live) using a THEOplayer on iOS.

#### 🐛 Issues

- Fixed an issue where the player license provided in the plist was not read properly.
- Fixed an issue where DAI `AdBreak`s returned by the `AdsEventTypes.AD_BREAK_BEGIN` event would have an inaccurate `timeOffset`.
- Fixed an issue where on iOS cues were skipped during the cue activation process.

## 🚀 8.5.1 (2024/11/29)

### Android
Expand Down
25 changes: 10 additions & 15 deletions theoplayer/how-to-guides/android/millicast/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,46 +39,41 @@ theoplayerView.player.addIntegration(millicastIntegration)
### Add a `MillicastSource`

After setting up a `THEOplayerView` in your app's activity, set its source to a `SourceDescription` containing a `MillicastSource`.
You'll need a Millicast account ID and stream name to create a `Credential` object and identify your Millicast stream:
You'll need a Millicast account ID and stream name to identify your Millicast stream:

```kotlin
import com.millicast.subscribers.Credential
import com.theoplayer.android.api.millicast.MillicastSource

theoplayerView.player.source = SourceDescription.Builder(
MillicastSource(
credential = Credential(
streamName = "multiview",
accountId = "k9Mwad",
apiUrl = "https://director.millicast.com/api/director/subscribe"
)
src = "multiview",
streamAccountId = "k9Mwad",
apiUrl = "https://director.millicast.com/api/director/subscribe"
)
).build()
```

### Add configuration

Optionally, you can provide additional configuration to the source, specific for working with Millicast streams.
To configure these settings, add an `Option` object as a second parameter to the source object and specify the options.
To configure these settings, add an `Option` object as the `connectOptions` parameter of the source object
and specify the options.

In the example below, the configuration is used to disable any audio from the Millicast stream.
For an exhaustive list of these options, visit the [documentation](https://millicast.github.io/doc/latest/android/android/com.millicast.subscribers/-option/index.html).

```kotlin
import com.millicast.subscribers.Credential
import com.millicast.subscribers.Option
import com.theoplayer.android.api.millicast.MillicastSource

...
theoplayerView.player.source = SourceDescription.Builder(
MillicastSource(
credential = Credential(
...
),
option = Option(
// ...
connectOptions = Option(
disableAudio = true
)
)
...
).build()
```

## More information
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const player = new THEOplayer.Player(element, configuration);
player.source = {
sources: {
type: 'millicast',
streamName: 'multiview',
src: 'multiview',
streamAccountId: 'k9Mwad',
},
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ You'll need a THEOlive channel ID:
const player = new THEOplayer.Player(element, configuration);
player.source = {
sources: {
integration: 'theolive',
type: 'theolive',
src: 'your-channel-id',
},
};
Expand Down
Loading
Loading