Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, bir UWP uygulaması için oyun yayınlarını yönetme hakkında bilgi verilmektedir. Kullanıcıların windows'da yerleşik olarak bulunan sistem kullanıcı arabirimini kullanarak yayın başlatması gerekir, ancak Windows 10, sürüm 1709'dan başlayarak uygulamalar sistem yayın kullanıcı arabirimini başlatabilir ve yayın başladığında ve durduğunda bildirim alabilir.
UWP için Windows Masaüstü Uzantılarını uygulamanıza ekleme
Windows.Media.AppBroadcasting ad alanında bulunan uygulama yayınını yönetme API'leri Evrensel API sözleşmesine dahil değildir. API'lere erişmek için aşağıdaki adımları izleyerek uygulamanıza UWP için Windows Masaüstü Uzantıları'na bir başvuru eklemeniz gerekir.
- Visual Studio'da, Çözüm Gezginiiçindeki UWP projenizi genişletin, ardından Başvurular kısmına sağ tıklayın ve Başvuru Ekle...seçeneğini seçin.
- Evrensel Windows düğümünü genişletin ve Uzantılaröğesini seçin.
- Uzantı listesinde, projenizin hedef derlemesi ile eşleşen UWP girişi için
Windows Masaüstü Uzantıları'nın yanındaki onay kutusunu işaretleyin. Uygulama yayını özellikleri için sürüm 1709 veya üzeri olmalıdır. - Tamam'a tıklayın.
Kullanıcının yayını başlatmasına izin vermek için sistem kullanıcı arabirimini başlatın
Geçerli cihazın yayın için donanım gereksinimlerini karşılamaması veya başka bir uygulamanın yayında olması da dahil olmak üzere uygulamanızın şu anda yayın yapamamasının çeşitli nedenleri vardır. Sistem kullanıcı arabirimini başlatmadan önce uygulamanızın şu anda yayın yapabiliyor olup olmadığını kontrol edebilirsiniz. İlk olarak yayın API'lerinin geçerli cihazda kullanılabilir olup olmadığını denetleyin. API'ler, Windows 10, sürüm 1709'dan önceki bir işletim sistemi sürümünü çalıştıran cihazlarda kullanılamaz. Belirli bir işletim sistemi sürümünü denetlemek yerine Windows.Media.AppBroadcasting.AppBroadcastingContract sürüm 1.0'ı sorgulamak için ApiInformation.IsApiContractPresent yöntemini kullanın. Bu sözleşme varsa yayın API'leri cihazda kullanılabilir.
Ardından, pc'de GetDefault
AppBroadcastingStatus sınıfının CanStartBroadcast özelliği, uygulamanın şu anda yayın yapmaya başlayıp başlayamayacağını bildirir. Yoksa, yayının kullanılamama nedenini belirlemek için Ayrıntıları özelliğini de kontrol edebilirsiniz. Nedene bağlı olarak, kullanıcıya durumu görüntülemek veya yayını etkinleştirme yönergelerini göstermek isteyebilirsiniz.
// Verify that the edition supports the AppBroadcasting APIs
if (!Windows::Foundation::Metadata::ApiInformation::IsApiContractPresent(
"Windows.Media.AppBroadcasting.AppBroadcastingContract", 1, 0))
{
return;
}
// On PC, call GetDefault because there is a single user signed in.
// On Xbox, call GetForUser instead because multiple users can be signed in.
AppBroadcastingUI^ broadcastingUI = AppBroadcastingUI::GetDefault();
AppBroadcastingStatus^ broadcastingStatus = broadcastingUI->GetStatus();
if (!broadcastingStatus->CanStartBroadcast)
{
AppBroadcastingStatusDetails^ details = broadcastingStatus->Details;
if (details->IsAnyAppBroadcasting)
{
UpdateStatusText("Another app is currently broadcasting.");
return;
}
if (details->IsCaptureResourceUnavailable)
{
UpdateStatusText("The capture resource is currently unavailable.");
return;
}
if (details->IsGameStreamInProgress)
{
UpdateStatusText("A game stream is currently in progress.");
return;
}
if (details->IsGpuConstrained)
{
// Typically, this means that the GPU software does not include an H264 encoder
UpdateStatusText("The GPU does not support broadcasting.");
return;
}
// Broadcasting can only be started when the application's window is the active window.
if (details->IsAppInactive)
{
UpdateStatusText("The app window to be broadcast is not active.");
return;
}
if (details->IsBlockedForApp)
{
UpdateStatusText("Broadcasting is blocked for this app.");
return;
}
if (details->IsDisabledByUser)
{
UpdateStatusText("The user has disabled GameBar in Windows Settings.");
return;
}
if (details->IsDisabledBySystem)
{
UpdateStatusText("Broadcasting is disabled by the system.");
return;
}
return;
}
Uygulama yayını kullanıcı arabiriminin ShowBroadcastUIçağrılarak sistem tarafından gösterilmesini isteyin.
Uyarı
ShowBroadcastUI yöntemi, sistemin geçerli durumuna bağlı olarak başarılı olmayan bir isteği temsil eder. Uygulamanız, bu yöntem çağrıldıktan sonra yayının başladığını varsaymamalıdır. Yayın başladığında veya durduğunda bildirim almak için IsCurrentAppBroadcastingChanged olayını kullanın.
broadcastingUI->ShowBroadcastUI();
Yayın başlatılırken ve durdurulurken bildirim alma
Kullanıcının sistem kullanıcı arabirimini kullanarak uygulamanızı yayınlamayı başlatması veya durdurması durumunda bildirim almak için AppBroadcastingMonitor sınıfının bir örneğini başlatın ve IsCurrentAppBroadcastingChanged olayı için bir işleyici kaydederek kaydolun. Önceki bölümde açıklandığı gibi, bir noktada ApiInformation.IsApiContractPresent kullanarak yayımlama API'lerinin kullanmayı denemeden önce cihazda mevcut olduğunu doğrulayın.
if (Windows::Foundation::Metadata::ApiInformation::IsApiContractPresent(
"Windows.Media.AppBroadcasting.AppBroadcastingContract", 1, 0))
{
m_appBroadcastMonitor = ref new AppBroadcastingMonitor();
m_appBroadcastMonitor->IsCurrentAppBroadcastingChanged +=
ref new TypedEventHandler<AppBroadcastingMonitor^, Platform::Object^>(this, &App::OnIsCurrentAppBroadcastingChanged);
}
IsCurrentAppBroadcastingChanged olayının işleyicisinde, uygulamanızın kullanıcı arabirimini geçerli yayın durumunu yansıtacak şekilde güncelleştirmek isteyebilirsiniz.
void App::OnIsCurrentAppBroadcastingChanged(AppBroadcastingMonitor^ sender, Platform::Object^ args)
{
if (sender->IsCurrentAppBroadcasting)
{
UpdateStatusText("App started broadcasting.");
}
else
{
UpdateStatusText("App stopped broadcasting.");
}
}
İlgili konular