본문으로 건너뛰기

실시간 스트리밍 중지

현재 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 객체는 자동으로 해제되지 않습니다.