본문으로 건너뛰기

실시간 스트리밍 중지

현재 RTSP 또는 JPEG 기기 실시간 스트리밍 세션을 중지하고 호스트 앱이 소유한 플레이어, relay, 이미지 및 UI 리소스를 해제합니다.

사전 요구 사항

  • 대상 기기가 LiveStreamingAPI를 준수합니다.
  • 현재 세션에서 생성한 표시 리소스의 참조를 유지합니다.
  • 화면 닫기와 명시적 중지 동작이 같은 정리 절차를 사용할 수 있도록 중지 처리를 멱등하게 구현합니다.

API 참고

프레임워크

AIBuds.xcframework

가져오기

Swift
import AIBuds
import AIBudsLiveStream

인스턴스 메서드

Swift
/// Stop live streaming
func stopLiveStreaming()

stopLiveStreaming을 참고하세요.

매개변수

이 메서드에는 매개변수가 없습니다.

반환 값

이 메서드는 값을 반환하지 않으며 completion handler도 받지 않습니다. 세션 종료 상황은 시작할 때 전달한 sessionFinishHandler에서 확인하세요.

사용 예제

Demo는 선택적 RTMP relay를 먼저 중지한 뒤 RTSP 재생을 중지하고 기기 세션 및 UI 상태를 정리합니다. 기기 명령과 호스트 리소스의 수명 주기는 서로 독립적입니다.

Swift
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)
}

오류 처리

stopLiveStreaming()에는 completion handler가 없으므로 로컬 정리 작업을 반복해도 안전하게 구현하세요. 원래 세션의 finish 콜백에서 isUserInitiatedStop을 확인하여 사용자 중지와 예기치 않은 중단을 구분하고, 세션이 비정상 종료되면 콜백 오류를 기록하거나 표시하세요.

권장 사항

  1. 해당 화면을 닫거나 기능을 종료할 때 실시간 스트리밍을 중지하세요.
  2. 기기 세션과 함께 RTMP relay, 플레이어 및 보관 중인 RTSP 주소를 해제하세요.
  3. 공개 메서드가 제공하지 않는 중지 completion을 기다리지 마세요.
  4. 로컬 정리 후에도 finish 콜백이 실행될 수 있으므로 콜백 처리를 멱등하게 구현하세요.

참고

  • 같은 중지 메서드로 RTSP 또는 JPEG 기기 세션을 종료합니다.
  • LiveStreamingPlayer만 중지해도 기기 세션은 중지되지 않습니다.
  • 기기 세션만 중지해도 호스트가 소유한 재생 또는 relay 객체는 자동으로 해제되지 않습니다.