Quick Start
As of 2023, Samsung states that Tizen TV's are not optimized for .NET applications. Samsung strongly recommends using JS/Web applications instead of C#/.NET applications for TVs. Please check the Lura Player Web SDK
Introduction
Lura Player .NET SDK enables DASH and MP4 video playback in Tizen .NET applications. It has a user-friendly interface, developer-friendly SDK and includes industry standard capabilities, making it a comprehensive solution for video streaming and advertising. The SDK is written in C#, a programming language that provides a strict type system and code stability, making it easier to integrate into .NET-based projects. Lura Player offers advanced advertisement support and a range of features for a seamless viewing experience, including support for multiple subtitle tracks and advanced playback controls.
This section describes all the mandatory steps to integrate Lura .NET SDK into your application to create a basic application. Lura Player support Tizen 6.5 and later versions, and requires the Tizen .NET workload to be installed.
.NET SDK Setup
Lura Player .NET SDK requires the .NET 6 SDK and the Samsung Tizen .NET workload.
1. Install the .NET 6 SDK
Download and install the .NET 6 SDK. Use only 6.0.0 version: https://dotnet.microsoft.com/download/dotnet/6.0
Verify the SDK is available on your PATH:
dotnet --info
dotnet --list-sdks
2. Install the Tizen .NET workload
Follow Samsung's official guide: https://github.com/Samsung/Tizen.NET/wiki/Installing-Tizen-.NET-Workload
If you're setting up via CLI, these are the commands from that guide:
curl -sSL https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.sh | sudo bash
Invoke-WebRequest 'https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.ps1' -OutFile 'workload-install.ps1'
.\workload-install.ps1
Verify the workload is installed:
dotnet workload list
You should see tizen in the installed workload list.
Akta MCP Package Download
Next step is to download the Lura NuGet package from Akta MCP and add it to your local machine.
1. Download the NuGet package from Akta MCP
Download the .nupkg file(s) to a local directory (for example ~/nuget/akta).
2. Add the local NuGet source
dotnet nuget add source <path-to-your-local-nuget-directory> --name "Akta MCP Local"
dotnet nuget list source
3. Install the package in your project
dotnet add package LuraPlayer --version <VERSION>
Player Control UI
LuraPlayer provides a default UI package that can be used to control the player. You can download the LuraPlayerUI UI package from the Akta MCP as well add it to your project.
You can also download source code from Github and use and customize it to create your own custom UI.
1. Download the UI package from Akta MCP
Download the UI .nupkg file(s) from the Akta MCP and save them to a local directory (for example ~/nuget/akta).
2. Install the package in your project
dotnet add package LuraPlayerUI --version <VERSION>
3. Customize the UI You can use the default UI package as it is or you can customize it to fit your needs. You can find the source code of the default UI package on Github:
Repo: Akta-Tech/LuraPlayerTizenDotnetUI
4. Custom UI Installation
In development, you can reference the project directly in your solution. For production, you can build the project and reference the generated .dll file in your project.
In your .csproj file, add the following reference:
In development,
<ProjectReference Include="path/to/your/UI/project" />
In production, Don't forget to add the generated .tpk file to your local NuGet source and reference it as a package:
<PackageReference Include="YourUIPackage" Version="YourVersion" />
//create a player instance and add it to the window
var player = new Player(Tizen.NUI.Window.Instance);
var playerControlUI = new PlayerControlUI(Tizen.NUI.Window.Instance, player, SynchronizationContext.Current);
var config = new Lura.Unified.Configuration();
config.Lura = new LuraConfiguration
{
AppKey = video.LuraAppKey,
AssetId = video.AssetId
};
await player.SetConfig(config);
player.Play();