'Unreal Engine 4 load Video in UMediaPlayer from link using c++(Low Level)

i am try to load video in media player using link but we can`t play video in low level(C++) but high level(BluePrint) is working fine here is my C++ coding please if you have any idea give me suggestion

UMediaTexture* MyTexture = NewObject<UMediaTexture>(this);
UStreamMediaSource* streamMediaSource = NewObject<UStreamMediaSource>(this);
    
UMediaPlayer* mediaPlayer = NewObject<UMediaPlayer>(this);
mediaPlayer->StreamUrl("https://docs.unrealengine.com/4.26/Attachments/WorkingWithMedia/MediaFramework/HowTo/StreamMediaSource/Infiltrator%20Demo.mp4");

mediaPlayer->OpenSource(streamMediaSource);
    MyTexture->SetMediaPlayer(mediaPlayer);
    MyTexture->UpdateResource();

    mediaPlayer->Play();

    

Mesh->SetMaterial(0, UnrealMaterial);
    DynamicMaterial = UMaterialInstanceDynamic::Create(UnrealMaterial, this);

    if (DynamicMaterial != nullptr)
    {        
        Mesh->SetMaterial(0, DynamicMaterial);
        DynamicMaterial->SetScalarParameterValue(TEXT("EmissiveStrength"), 50);
        DynamicMaterial->SetTextureParameterValue(TEXT("Param"), MyTexture);
    }

and try also other way like:

UMaterialExpressionTextureSample* TextureExpression = NewObject<UMaterialExpressionTextureSample>(UnrealMaterial);
    TextureExpression->Texture = MyTexture;
    TextureExpression->SamplerType = SAMPLERTYPE_External;
    UnrealMaterial->Expressions.Add(TextureExpression);
    UnrealMaterial->BaseColor.Expression = TextureExpression;

and create Dynamic Material convert c++ file to Blueprint but video not load and other way we uses create blueprint and set texture sample uses in c++ file like

DynamicMaterial->SetScalarParameterValue(TEXT("EmissiveStrength"), 50);
            DynamicMaterial->SetTextureParameterValue(TEXT("Param"), MyTexture);

please help me out



Solution 1:[1]

Here is some error in your code maybe. Try this.

UMediaTexture* MyTexture = NewObject<UMediaTexture>(this);
UStreamMediaSource* streamMediaSource = NewObject<UStreamMediaSource>(this);
    
UMediaPlayer* mediaPlayer = NewObject<UMediaPlayer>(this);
streamMediaSource->StreamUrl = "https://docs.unrealengine.com/4.26/Attachments/WorkingWithMedia/MediaFramework/HowTo/StreamMediaSource/Infiltrator%20Demo.mp4";

mediaPlayer->OpenSource(streamMediaSource);
    MyTexture->SetMediaPlayer(mediaPlayer);
    MyTexture->UpdateResource();

    mediaPlayer->Play();

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 user18808878