Canlı Yayını Durdurma
Geçerli RTSP veya JPEG cihaz canlı yayın oturumunu durdurun ve ana uygulamanın sahip olduğu oynatıcı, aktarma, görüntü ve kullanıcı arayüzü kaynaklarını serbest bırakın.
Ön Koşullar
- Hedef cihaz
LiveStreamingAPIprotokolüne uyar. - Geçerli oturum için oluşturulan sunum kaynaklarının referanslarını koruyun.
- Görünümün kapanmasıyla açık durdurma eyleminin aynı temizleme yolunu güvenle kullanabilmesi için durdurma işlemini idempotent tasarlayın.
API Referansı
Framework
AIBuds.xcframework
İçe Aktarma
- Swift
- Objective-C
import AIBuds
import AIBudsLiveStream#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>
#import <AIBudsLiveStream/AIBudsLiveStream-Swift.h>Örnek Yöntemi
- Swift
- Objective-C
/// Stop live streaming
func stopLiveStreaming()/// Stop live streaming
- (void)stopLiveStreaming;stopLiveStreaming öğesine bakın.
Parametreler
Bu yöntemin parametresi yoktur.
Dönüş Değeri
Bu yöntem değer döndürmez ve completion işleyicisi kabul etmez. Oturumun nasıl sonlandığını belirlemek için oturum başlatılırken verilen sessionFinishHandler callback’ini izleyin.
Kullanım Örnekleri
Demo, RTSP oynatmayı durdurmadan önce isteğe bağlı RTMP aktarımını durdurur; ardından cihaz oturumu ile kullanıcı arayüzü durumunu temizler. Cihaz komutu ile ana uygulama kaynakları ayrı yaşam döngüleridir.
- Swift
- Objective-C
func stopCurrentLiveStream() {
// Stop optional host-side relay and playback resources.
liveStreamer?.stopStreaming()
liveStreamer = nil
mediaPlayer?.stop()
// Stop the RTSP or JPEG session on the connected device.
(device as? LiveStreamingAPI)?.stopLiveStreaming()
currentRTSPAddress = nil
imageView.image = nil
setStreamingActive(false)
}- (void)stopCurrentLiveStream {
// Stop optional host-side relay and playback resources.
[self.liveStreamer stopStreaming];
self.liveStreamer = nil;
[self.mediaPlayer stop];
// Stop the RTSP or JPEG session on the connected device.
id<AIBudsLiveStreamingAPI> streamingDevice = (id<AIBudsLiveStreamingAPI>)self.device;
if ([streamingDevice conformsToProtocol:@protocol(AIBudsLiveStreamingAPI)]) {
[streamingDevice stopLiveStreaming];
}
self.currentRtspAddress = nil;
self.imageView.image = nil;
[self setStreamingActive:NO];
}Hata Yönetimi
stopLiveStreaming() completion işleyicisi sunmadığından, yerel temizlemeyi tekrarlanabilir ve güvenli tasarlayın. isUserInitiatedStop durumunu kesintiden ayırmak için özgün oturumun bitiş callback’ini kullanın. Oturum beklenmedik biçimde biterse callback hatasını kaydedin veya kullanıcıya gösterin.
En İyi Uygulamalar
- İlgili ekrandan çıkarken veya özelliği sonlandırırken canlı yayını durdurun.
- RTMP aktarımını, oynatıcıyı ve saklanan RTSP adresini cihaz oturumuyla birlikte serbest bırakın.
- Genel yöntemin sunmadığı bir durdurma completion callback’ini beklemeyin.
- Yerel temizlemeden sonra da çalışabileceği için bitiş callback’i yönetimini idempotent tutun.
Notlar
- Aynı durdurma yöntemi hem RTSP hem de JPEG cihaz oturumunu sonlandırır.
- Yalnızca
LiveStreamingPlayeröğesini durdurmak cihaz oturumunu durdurmaz. - Yalnızca cihaz oturumunu durdurmak, ana uygulamanın sahip olduğu oynatma veya aktarma nesnelerini otomatik olarak serbest bırakmaz.