OpenTok을 사용하여 iOS 용 음성 및 영상 채팅 앱을 만들고 있습니다. 비디오 스트림과 오디오 전용 스트림의 오디오는 헤드셋이 연결되어있을 때 작동합니다. 그렇지 않으면 스피커폰을 통해 재생됩니다. 어떻게 변경합니까? 오디오 장치와 오디오 버스 설정스트림의 오디오를 iPhone의 일반 (스피커폰 아님) 스피커로 재생하려면 어떻게합니까?
답변
[OTAudioDeviceManager setAudioDevice : [OTKBasicAudioDevice ALLOC]을 초기화하기];
OpenTok iOS SDK에 정의 된 OTAudioFormat 클래스를 사용하여 사용자 정의 오디오 드라이버에서 사용되는 오디오 포맷을 정의하십시오. 에서 [OTKBasicAudioDevice INIT]에있어서, 상기 OTAudioFormat 클래스의 인스턴스를 생성하고, 오디오 포맷에 대한 채널의 샘플링 속도 및 횟수 설정 :
- (id)init
{
self = [super init];
if (self) {
self = [super init];
if (self) {
_otAudioFormat = [[OTAudioFormat alloc] init];
_otAudioFormat.sampleRate = kSampleRate;
_otAudioFormat.numChannels = 1;
}
// ...
}
return self;
}
초기화 방법은 또한 디바이스가 있는지보고 몇몇 로컬 속성 설정을 이 렌더링 여부 캡쳐가 초기화되었는지 여부와 묘화가 초기화되었는지 여부를 캡처 :
는_isDeviceCapturing = NO;
_isCaptureInitialized = NO;
_isDeviceRendering = NO;
_isRenderingInitialized = NO;
init 메소드는 파일로 수신 된 오디오를 저장하는 파일을 설정한다.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *path = [paths[0] stringByAppendingPathComponent:kOutputFileSampleName];
[[NSFileManager defaultManager] createFileAtPath:path
contents:nil
attributes:nil];
_outFile = [NSFileHandle fileHandleForReadingAtPath:path];
:이 정의 오디오 드라이버의 오디오 렌더러의 사용 설명하기 간단히 수행된다 OTKBasicAudioDevice setAudioBus를 : (OTAudioDevice 프로토콜에 의해 정의 된) 방법은 오디오 기기에 의해 사용되는 오디오 버스 세트 (정의한 OTAudioBus 프로토콜에 의해). 오디오 장치는이 개체를 사용하여 세션에서 오디오 샘플을 보내고받습니다. 이 객체 인스턴스는 구현 객체의 수명 동안 유지됩니다. 게시자는 OTAudioBus 개체에 액세스하여 오디오 샘플을 가져옵니다. 구독자는 오디오 샘플 (구독 된 스트림에서)을 OTAudioBus 개체로 보냅니다. [OTAudioDevice setAudioBus :] 여기의 OTKBasicAudioDevice 구현은있어서
- (BOOL)setAudioBus:(id<OTAudioBus>)audioBus
{
self.otAudioBus = audioBus;
return YES;
}
에서 [OTKBasicAudioDevice setAudioBus : (OTAudioDevice 프로토콜에 의해 정의 된) 방법에있어서 오디오 렌더링 포맷으로 상기에서 작성된 OTAudioFormat 인스턴스를 설정 초기화 방법 :
- (OTAudioFormat*)renderFormat
{
return self.otAudioFormat;
}
자세한 내용을 보려면 this을 참조하십시오.
전화기의 소형 전화기 스피커를 통해 오디오를 보내는 오디오 드라이버가 있습니까? 평소 통화에서 사용하는 스피커와 비슷합니까? – spnkr
@spnkr 앱에서 사용할 맞춤 오디오 장치를 설정하는 데 사용됩니다. 오디오 장치는 오디오 캡처 및 렌더링 하드웨어에 대한 액세스를 관리합니다. 자세한 내용은 https://tokbox.com/developer/sdks/ios/reference/Classes/OTAudioDeviceManager.html –
@spnkr 귀하의 질문에 따라 답변 드리겠습니다. –
- 1. 오디오를 블루투스 스피커로 다시 연결
- 2. LUA/Corona SDK에서 임의의 단어를 표시하고 오디오를 재생하려면 어떻게합니까?
- 3. 안드로이드 장치에서 블루투스 스피커로 오디오를 리디렉션하는 방법
- 4. ios가 전화 통화 중 스피커로 오디오를 전송합니다.
- 5. 마이크에서 스피커로 오디오를 스트리밍하는 방법은 무엇입니까?
- 6. 스위프트 AVPlayer에서 이어 스피커로
- 7. 장치 스피커에서 블루투스 스피커로 오디오를 라우팅하는 방법은 무엇입니까?
- 8. 전체 사이트에서 HTML5 오디오를 재생하려면 어떻게해야합니까?
- 9. Android - 보통 속도의 1.4 배로 오디오를 재생하려면
- 10. 웹 오디오 API에서 역방향으로 오디오를 재생하려면 어떻게해야합니까?
- 11. 동일한 사운드에서 사운드를 재생하려면 어떻게합니까?
- 12. 오디오 출력을 스피커로 전환
- 13. AppRTC iOS 예제에서 오디오를 스피커로 리디렉션하는 방법은 무엇입니까?
- 14. iOS 5에서 헤드폰과 스피커로 별도의 오디오를 재생하는 방법
- 15. Android에서 마이크에서 스피커로 오디오를 가져 오는 방법은 무엇입니까?
- 16. iPhone의 Safari에서 오디오를 만들려면 어떻게 하나씩 많은 오디오를 실행합니까?
- 17. 오디오를 iPhone의 오디오 버퍼에 직접 복사하십시오.
- 18. iPad/iPhone의 블루투스 헤드셋에서 오디오를 녹음하려면 어떻게해야합니까?
- 19. 내 웹 페이지에서 음악을 자동 재생하려면 어떻게합니까?
- 20. 이미지 위에 비디오를 강제로 재생하려면 어떻게합니까?
- 21. iOS 기기를 AirPlay 스피커로 바꾸기
- 22. iPhone의 테이블보기에서 일반 탭을 인식합니다.
- 23. 파일이 완료되면 RemoteIO를 어떻게 중지합니까? 나는 오디오를 재생하려면 다음을 사용하고
- 24. HTML 브라우저에서 재생되는 비디오의 오디오를 디 먹스하고 다시 재생하려면
- 25. iPhone의 가로보기에서 카메라를 표시하려면 어떻게합니까?
- 26. 사용자가 iPhone의 보류 버튼을 누른 후에 음악을 계속 재생하려면 어떻게해야합니까?
- 27. 프로그래밍 방식으로 안드로이드 설정 스피커폰
- 28. 일반 전화선을 통과 시키려면 어떻게합니까?
- 29. iTunes 또는 iPhone의 다른 플레이어가 재생하는 오디오를 분석 (주파수) 할 수 있습니까?
- 30. 스피커폰 모드를 활성화 한 상태에서 통화 중에 오디오를 재생하는 방법은 무엇입니까?
누구나 [OTAudioDeviceManager setAudioDevice :] 또는 OTAudioBus 클래스에 문제가 없었습니까? – spnkr