Pixel Streaming Ses Yakalama
Pixel Streaming, Unreal Engine için oluşturulmuş, işlenmiş kareleri aktaran ve WebRTC üzerinden giriş/çıkışı senkronize eden bir eklentidir. Uygulama sunucu tarafında çalışırken, istemci tarafı işleme ve kullanıcı etkileşimini gerçekleştirir. Pixel Streaming ve kurulumu hakkında daha fazla ayrıntı için Pixel Streaming Dokümantasyonu sayfasına bakın.
Pixel Streaming vs Pixel Streaming 2
Bu eklenti, Unreal Engine'de mevcut olan her iki Pixel Streaming sürümünü de destekler:
- Pixel Streaming - Orijinal eklenti, UE 5.2'den beri mevcut ve mevcut motor sürümlerinde hala aktif olarak kullanılıyor
- Pixel Streaming 2 - UE 5.5'te tanıtılan, geliştirilmiş bir dahili mimariye sahip yeni nesil bir uygulama. Pixel Streaming 2 hakkında daha fazla bilgi edinin
Her iki sürüm de en son Unreal Engine sürümlerinde tam olarak desteklenmekte ve mevcuttur. Projenizin Pixel Streaming kurulumuyla eşleşen sürümü seçin.
Her iki sürüm için API aynıdır, tek fark Pixel Streaming 2 sınıflarının ve işlevlerinin isimlerinde "2" bulunmasıdır (örneğin, UPixelStreamingCapturableSoundWave vs UPixelStreaming2CapturableSoundWave).
Uyumluluk
Bu çözüm şunlarla çalışır:
- Resmi Pixel Streaming altyapısı (Epic Games referans uygulaması)
- Üçüncü taraf Pixel Streaming sağlayıcıları dahil:
- Vagon.io
- Arcane Mirage
- Eagle 3D Streaming
- Diğer WebRTC tabanlı akış çözümleri
- İşletim sistemleri: Windows ve Linux sunucular
Uygulama bu ortamlarda test edilmiş olup, kullanılan Pixel Streaming barındırma çözümünden bağımsız olarak doğru şekilde çalışır.
Uzantı Eklentisi Kurulumu
Bu özellik, Runtime Audio Importer eklentisine bir uzantı olarak sağlanmaktadır. Kullanmak için şunları yapmanız gerekir:
- Runtime Audio Importer eklentisinin projenizde zaten kurulu olduğundan emin olun
- Pixel Streaming sürümünüz için uzantı eklentisini indirin:
- Pixel Streaming: Google Drive'dan İndir
- Pixel Streaming 2: Google Drive'dan İndir
- İndirilen arşivdeki klasörü projenizin
Pluginsklasörüne çıkarın (bu klasör mevcut değilse oluşturun) - Projenizi yeniden oluşturun (bu uzantı bir C++ projesi gerektirir)
- Bu uzantılar kaynak kodu olarak sağlanır ve kullanmak için bir C++ projesi gerektirir
- Pixel Streaming uzantısı: UE 5.2 ve sonrasında desteklenir
- Pixel Streaming 2 uzantısı: UE 5.5 ve sonrasında desteklenir
- Eklentileri manuel olarak nasıl oluşturacağınız hakkında daha fazla bilgi için Eklenti Oluşturma eğitimine bakın
Genel Bakış
Pixel Streaming Capturable Sound Wave, standart Capturable Sound Wave öğesini genişleterek doğrudan Pixel Streaming istemcilerinin mikrofonlarından ses yakalamaya olanak tanır. Bu özellik şunları yapmanızı sağlar:
- Pixel Streaming üzerinden bağlanan tarayıcılardan ses yakalama
- Belirli oyuncular/akranlardan gelen sesi işleme
- Uzak kullanıcılardan sesli sohbet, ses komutları veya ses kaydı uygulama
Temel Kullanım
Pixel Streaming Capturable Sound Wave Oluşturma
İlk olarak, bir Pixel Streaming Capturable Sound Wave nesnesi oluşturmanız gerekir:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++
![]()
PixelStreamingSoundWave = UPixelStreamingCapturableSoundWave::CreatePixelStreamingCapturableSoundWave();
- Blueprint
- C++
Create Pixel Streaming 2 Capturable Sound Wave düğümünü kullanın (Pixel Streaming ile aynı ancak isminde "2" var)
PixelStreamingSoundWave = UPixelStreaming2CapturableSoundWave::CreatePixelStreaming2CapturableSoundWave();
Pixel Streaming Capturable Sound Wave'ı erken yok olmayı önlemek için güçlü bir referans olarak ele almalısınız (örneğin, Blueprints'te ayrı bir değişkene atayarak veya C++'ta UPROPERTY() kullanarak).
Yakalamayı Başlatma ve Durdurma
Ses yakalamayı basit fonksiyon çağrılarıyla başlatıp durdurabilirsiniz:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++

// Assuming PixelStreamingSoundWave is a reference to a UPixelStreamingCapturableSoundWave object
// Start capturing audio (the device ID parameter is ignored for Pixel Streaming)
PixelStreamingSoundWave->StartCapture(0);
// Stop capturing audio
PixelStreamingSoundWave->StopCapture();
- Blueprint
- C++
Pixel Streaming 2 Yakalanabilir Ses Dalgası ile aynı Yakalamayı Başlat ve Yakalamayı Durdur düğümlerini kullanın
// Assuming PixelStreamingSoundWave is a reference to a UPixelStreaming2CapturableSoundWave object
// Start capturing audio (the device ID parameter is ignored for Pixel Streaming 2)
PixelStreamingSoundWave->StartCapture(0);
// Stop capturing audio
PixelStreamingSoundWave->StopCapture();
StartCapture içindeki DeviceId parametresi, Pixel Streaming Capturable Sound Waves için göz ardı edilir çünkü yakalama kaynağı otomatik olarak veya ayarladığınız oyuncu bilgisine göre belirlenir.
Yakalama Durumunu Kontrol Etme
Ses dalgasının şu anda ses yakalayıp yakalamadığını kontrol edebilirsiniz:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++

// Assuming PixelStreamingSoundWave is a reference to a UPixelStreamingCapturableSoundWave object
bool bIsCapturing = PixelStreamingSoundWave->IsCapturing();
- Blueprint
- C++
Aynı Is Capturing düğümünü Pixel Streaming 2 Yakalanabilir Ses Dalgası ile kullanın
// Assuming PixelStreamingSoundWave is a reference to a UPixelStreaming2CapturableSoundWave object
bool bIsCapturing = PixelStreamingSoundWave->IsCapturing();
Tam Örnek
İşte Pixel Streaming ses yakalama kurulumunun tam bir örneği:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++
![]()
Bu, bir Pixel Streaming istemcisinden ses verisi yakalamak için temel bir kod örneğidir.
Örnek, EXAMPLEMODULE modülü içindeki UPixelStreamingAudioExample sınıfında bulunan CapturePixelStreamingAudioExample işlevini kullanır.
Örneği başarıyla çalıştırmak için, hem RuntimeAudioImporter hem de PixelStreaming modüllerini .Build.cs dosyasındaki PublicDependencyModuleNames veya PrivateDependencyModuleNames listesine ve projenizin .uproject dosyasına eklediğinizden emin olun.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "PixelStreamingAudioExample.generated.h"
UCLASS(BlueprintType)
class EXAMPLEMODULE_API UPixelStreamingAudioExample : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
void CapturePixelStreamingAudioExample();
private:
// Keep a strong reference to prevent garbage collection
UPROPERTY()
class UPixelStreamingCapturableSoundWave* PixelStreamingSoundWave;
};
#include "PixelStreamingAudioExample.h"
#include "Sound/PixelStreamingCapturableSoundWave.h"
#include "Kismet/GameplayStatics.h"
void UPixelStreamingAudioExample::CapturePixelStreamingAudioExample()
{
// Create a Pixel Streaming Capturable Sound Wave
PixelStreamingSoundWave = UPixelStreamingCapturableSoundWave::CreatePixelStreamingCapturableSoundWave();
// Start capturing audio
PixelStreamingSoundWave->StartCapture(0);
// Play the sound wave to hear the captured audio
UGameplayStatics::PlaySound2D(GetWorld(), PixelStreamingSoundWave);
// Set up a timer to stop capture after 30 seconds (just for demonstration)
FTimerHandle TimerHandle;
GetWorld()->GetTimerManager().SetTimer(TimerHandle, [this]()
{
PixelStreamingSoundWave->StopCapture();
}, 30.0f, false);
}
- Blueprint
- C++
Blueprint kurulumu Pixel Streaming ile aynıdır, ancak bunun yerine Create Pixel Streaming 2 Capturable Sound Wave düğümünü kullanın
Bu, bir Pixel Streaming 2 istemcisinden ses verisi yakalamak için temel bir kod örneğidir.
Örnek, EXAMPLEMODULE modülü içindeki UPixelStreaming2AudioExample sınıfında bulunan CapturePixelStreaming2AudioExample işlevini kullanır.
Örneği başarıyla çalıştırmak için, hem RuntimeAudioImporter hem de PixelStreaming2 modüllerini .Build.cs dosyasındaki PublicDependencyModuleNames veya PrivateDependencyModuleNames listesine ve projenizin .uproject dosyasına eklediğinizden emin olun.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "PixelStreaming2AudioExample.generated.h"
UCLASS(BlueprintType)
class EXAMPLEMODULE_API UPixelStreaming2AudioExample : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
void CapturePixelStreaming2AudioExample();
private:
// Keep a strong reference to prevent garbage collection
UPROPERTY()
class UPixelStreaming2CapturableSoundWave* PixelStreamingSoundWave;
};
#include "PixelStreaming2AudioExample.h"
#include "Sound/PixelStreaming2CapturableSoundWave.h"
#include "Kismet/GameplayStatics.h"
void UPixelStreaming2AudioExample::CapturePixelStreaming2AudioExample()
{
// Create a Pixel Streaming 2 Capturable Sound Wave
PixelStreamingSoundWave = UPixelStreaming2CapturableSoundWave::CreatePixelStreaming2CapturableSoundWave();
// Start capturing audio
PixelStreamingSoundWave->StartCapture(0);
// Play the sound wave to hear the captured audio
UGameplayStatics::PlaySound2D(GetWorld(), PixelStreamingSoundWave);
// Set up a timer to stop capture after 30 seconds (just for demonstration)
FTimerHandle TimerHandle;
GetWorld()->GetTimerManager().SetTimer(TimerHandle, [this]()
{
PixelStreamingSoundWave->StopCapture();
}, 30.0f, false);
}
Çoklu Pixel Streaming Oyuncularıyla Çalışma
Aynı anda birden fazla Pixel Streaming istemcisinin bağlı olduğu senaryolarda, belirli oyunculardan ses yakalamanız gerekebilir. Aşağıdaki özellikler bunu yönetmenize yardımcı olur.
Mevcut Pixel Streaming Oyuncularını Alma
Hangi Pixel Streaming oyuncularının bağlı olduğunu belirlemek için:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++
![]()
UPixelStreamingCapturableSoundWave::GetAvailablePixelStreamingPlayers(FOnGetAvailablePixelStreamingPlayersResultNative::CreateWeakLambda(this, [](const TArray<FPixelStreamingPlayerInfo_RAI>& AvailablePlayers)
{
// Handle the list of available players
for (const FPixelStreamingPlayerInfo_RAI& PlayerInfo : AvailablePlayers)
{
UE_LOG(LogTemp, Log, TEXT("Available player: %s on streamer: %s"), *PlayerInfo.PlayerId, *PlayerInfo.StreamerId);
}
}));
- Blueprint
- C++
Mevcut Pixel Streaming 2 Oyuncularını Al düğümünü kullanın
UPixelStreaming2CapturableSoundWave::GetAvailablePixelStreaming2Players(FOnGetAvailablePixelStreaming2PlayersResultNative::CreateWeakLambda(this, [](const TArray<FPixelStreaming2PlayerInfo_RAI>& AvailablePlayers)
{
// Handle the list of available players
for (const FPixelStreaming2PlayerInfo_RAI& PlayerInfo : AvailablePlayers)
{
UE_LOG(LogTemp, Log, TEXT("Available player: %s on streamer: %s"), *PlayerInfo.PlayerId, *PlayerInfo.StreamerId);
}
}));
Yakalamak İçin Oyuncuyu Ayarlama
Belirli bir oyuncudan yakalama yapmanız gerektiğinde:
- Pixel Streaming
- Pixel Streaming 2
- Blueprint
- C++

// Assuming PixelStreamingSoundWave is a reference to a UPixelStreamingCapturableSoundWave object
// and PlayerInfo is a FPixelStreamingPlayerInfo_RAI object from GetAvailablePixelStreamingPlayers
PixelStreamingSoundWave->PlayerInfo = PlayerInfo;
- Blueprint
- C++
Set Player To Capture From düğümünü Pixel Streaming 2 Yakalanabilir Ses Dalgası ile kullanın
// Assuming PixelStreamingSoundWave is a reference to a UPixelStreaming2CapturableSoundWave object
// and PlayerInfo is a FPixelStreaming2PlayerInfo_RAI object from GetAvailablePixelStreaming2Players
PixelStreamingSoundWave->PlayerInfo = PlayerInfo;
Eğer Oyuncu Kimliğini boş bırakırsanız, ses dalgası otomatik olarak bağlanan ilk kullanılabilir oyuncuyu dinleyecektir. Bu varsayılan davranıştır ve tek oyunculu senaryolar için iyi çalışır.
Yaygın Kullanım Senaryoları
Sesli Sohbet Uygulaması
Uzak kullanıcılar ve yerel oyuncular arasında sesli sohbet uygulamak için Pixel Streaming Yakalanabilir Ses Dalgalarını kullanabilirsiniz:
- Bağlı her oyuncu için bir Pixel Streaming Yakalanabilir Ses Dalgası oluşturun
- Hangi oyuncuların şu anda konuştuğunu yönetmek için bir sistem kurun
- Kullanıcıların ne zaman konuştuğunu tespit etmek için Ses Aktivite Tespiti sistemini kullanın
- Gerekirse, Unreal Engine'in ses sistemini kullanarak sesi mekansallaştırın
Konuşma Tanıma ile Sesli Komutlar
Bu özelliği Runtime Speech Recognizer eklentisi ile birleştirerek uzak kullanıcılar için sesli komut tanıma uygulayabilirsiniz:
- Pixel Streaming Yakalanabilir Ses Dalgası kullanarak Pixel Streaming istemcilerinden ses yakalayın
- Yakalanan sesi doğrudan Runtime Speech Recognizer'a besleyin
- Tanınan metni oyun mantığınızda işleyin
Runtime Speech Recognizer örneklerindeki standart Yakalanabilir Ses Dalgasını bir Pixel Streaming Yakalanabilir Ses Dalgası (veya Pixel Streaming 2 Yakalanabilir Ses Dalgası) ile değiştirmeniz yeterlidir ve bu, Pixel Streaming ses girişiyle sorunsuz bir şekilde çalışacaktır.
Uzak Kullanıcı Sesini Kaydetme
Daha sonra oynatmak için uzak kullanıcılardan ses kaydedebilirsiniz:
- Pixel Streaming Yakalanabilir Ses Dalgası kullanarak ses yakalayın
- Yakalanan sesi Ses Dışa Aktar kullanarak bir dosyaya aktarın
- Dosyayı daha sonra kullanmak veya analiz etmek için kaydedin