JCSDK-iOS
JCMediaDevice.h
1 //
2 // JCMediaDevice.h
3 // JCSDK-OC
4 //
5 // Created by maikireton on 2017/8/11.
6 // Copyright © 2017年 juphoon. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 #import "JCClient.h"
11 #import "JCMediaDeviceVideoCanvas.h"
12 #import "JCMediaDeviceCallback.h"
13 #import "JCMediaDeviceConstants.h"
14 #import "JCMediaDeviceCameraItem.h"
15 
25 @interface JCMediaDevice : NSObject
26 
32 @property (nonatomic, readonly, assign) bool cameraOpen;
33 
39 @property (nonatomic, readonly, assign) bool videoFileOpen;
40 
46 @property (nonatomic, readonly, assign) bool speakerOn;
47 
52 @property (nonatomic, readonly, copy) NSString* __nonnull camera;
53 
57 @property (nonatomic, assign) bool autoRotate;
58 
62 @property (nonatomic, copy, readonly) NSString* __nonnull videoFileId;
63 
68 @property (nonatomic, assign) JCMediaDeviceRotateAngle rotateAngleToScreen;
69 
73 @property (nonatomic, assign) bool audioInterrupt;
74 
78 @property (nonatomic, assign) bool aec;
79 
83 @property (nonatomic, strong, readonly) NSArray <JCMediaDeviceCameraItem *> * __nonnull cameraDevices;
84 
99 + (JCMediaDevice * __nullable)create:(JCClient * __nonnull)client callback:(id<JCMediaDeviceCallback> __nonnull)callback;
100 
106 + (void)destroy;
107 
123 - (JCMediaDeviceVideoCanvas* __nullable)startCameraVideo:(JCMediaDeviceRender)type;
124 
141 - (JCMediaDeviceVideoCanvas* __nullable)startCameraVideo:(JCMediaDeviceRender)type view:(UIView* __nonnull)view;
142 
157 - (JCMediaDeviceVideoCanvas* __nullable)startVideo:(NSString* __nonnull)videoSource renderType:(JCMediaDeviceRender)type;
158 
172 - (JCMediaDeviceVideoCanvas* __nullable)startVideo:(NSString* __nonnull)videoSource renderType:(JCMediaDeviceRender)type view:(UIView* __nonnull)view;
173 
179 - (void)stopVideo:(JCMediaDeviceVideoCanvas* __nonnull)canvas;
180 
189 - (bool)startAudio;
190 
199 - (bool)stopAudio;
200 
212 - (bool)startCamera;
213 
223 - (bool)stopCamera;
224 
237 - (bool)switchCamera;
238 
244 - (void)specifyCamera:(NSString* __nonnull)camera;
245 
251 - (void)specifyCameraAngle:(int)angle;
252 
262 - (void)setCameraProperty:(int)width height:(int)height framerate:(int)framerate;
263 
273 - (void)setScreenCaptureProperty:(int)width height:(int)height framerate:(int)framerate;
274 
282 - (void)enableSpeaker:(bool)enable;
283 
294 - (bool)enableScreenCapture:(bool)enable;
295 
300 -(NSString* __nullable)getAudioOutputType;
301 
306 - (bool)isAudioInputStart;
307 
312 - (bool)isAudioOutputStart;
313 
318 - (bool)startAudioInput;
319 
324 - (bool)stopAudioInput;
325 
330 - (bool)startAudioOutput;
331 
336 - (bool)stopAudioOutput;
337 
342 - (bool)startVideoFile;
343 
354 - (void)setVideoFileFrame:(NSData* __nonnull)srcFrame format:(JCMediaDeviceVideoPixelFormat)format width:(int)width height:(int)height;
355 
365 - (void)setVideoFileFrame:(CVPixelBufferRef __nonnull)srcFrame angle:(int)angle mirror:(int)mirror;
366 
376 - (bool)stopVideoFile;
377 
387 - (bool)snapshotWithRenderId:(NSString* __nonnull)renderId path:(NSString* __nonnull)path;
388 
402 - (bool)startSelfHelpRecord:(NSString* __nonnull)recordPath cameraId:(NSString* __nonnull)cameraId width:(int)width height:(int)height fps:(int)fps bitrate:(int)bitrate;
403 
414 - (bool)attachSelfHelpRecordCaptureSoure:(NSString* __nonnull)captureId;
415 
426 - (bool)detachSelfHelpRecordCaptureSoure:(NSString* __nonnull)captureId;
427 
435 - (bool)startFileRecordVideo:(NSString *)recordPath cameraId:(NSString *)cameraId width:(int)width height:(int)height;
436 
441 - (void)stopFileRecord:(NSString *)cameraId;
442 
450 - (bool)stopSelfHelpRecord;
451 
459 - (bool)ringPlay:(NSString* __nonnull)path;
460 
464 - (void)ringStop;
465 
469 - (NSDictionary* __nullable)getVersion;
470 
474 - (NSString* __nullable)getScreenCaptureWindowId;
475 @end
476 
-[JCMediaDevice getAudioOutputType]
NSString *__nullable getAudioOutputType()
Definition: JCMediaDevice.m:730
-[JCMediaDevice startAudio]
bool startAudio()
Definition: JCMediaDevice.m:421
JCMediaDevice::videoFileOpen
bool videoFileOpen
Definition: JCMediaDevice.h:39
+[JCMediaDevice destroy]
void destroy()
Definition: JCMediaDevice.m:71
-[JCMediaDevice stopSelfHelpRecord]
bool stopSelfHelpRecord()
Definition: JCMediaDevice.m:693
JCMediaDeviceVideoPixelFormat
JCMediaDeviceVideoPixelFormat
Definition: JCMediaDeviceConstants.h:45
-[JCMediaDevice stopAudioOutput]
bool stopAudioOutput()
Definition: JCMediaDevice.m:411
-[JCMediaDevice stopAudio]
bool stopAudio()
Definition: JCMediaDevice.m:462
JCMediaDeviceRotateAngle
JCMediaDeviceRotateAngle
Definition: JCMediaDeviceConstants.h:19
-[JCMediaDevice startVideoFile]
bool startVideoFile()
Definition: JCMediaDevice.m:229
JCMediaDevice::camera
NSString *__nonnull camera
Definition: JCMediaDevice.h:52
JCMediaDeviceCallback-p
Definition: JCMediaDeviceCallback.h:20
JCMediaDevice
Definition: JCMediaDevice.h:26
-[JCMediaDevice switchCamera]
bool switchCamera()
Definition: JCMediaDevice.m:528
JCMediaDevice::speakerOn
bool speakerOn
Definition: JCMediaDevice.h:46
-[JCMediaDevice isAudioInputStart]
bool isAudioInputStart()
Definition: JCMediaDevice.m:221
-[JCMediaDevice stopCamera]
bool stopCamera()
Definition: JCMediaDevice.m:507
JCMediaDevice::cameraDevices
NSArray< JCMediaDeviceCameraItem * > *__nonnull cameraDevices
Definition: JCMediaDevice.h:83
-[JCMediaDevice getVersion]
NSDictionary *__nullable getVersion()
Definition: JCMediaDevice.m:734
JCMediaDeviceRender
JCMediaDeviceRender
Definition: JCMediaDeviceConstants.h:33
-[JCMediaDevice stopVideoFile]
bool stopVideoFile()
Definition: JCMediaDevice.m:351
-[JCMediaDevice ringStop]
void ringStop()
Definition: JCMediaDevice.m:726
JCMediaDevice::aec
bool aec
Definition: JCMediaDevice.h:78
-[JCMediaDevice isAudioOutputStart]
bool isAudioOutputStart()
Definition: JCMediaDevice.m:225
JCMediaDevice::cameraOpen
bool cameraOpen
Definition: JCMediaDevice.h:32
-[JCMediaDevice startCamera]
bool startCamera()
Definition: JCMediaDevice.m:481
JCMediaDevice::videoFileId
NSString *__nonnull videoFileId
Definition: JCMediaDevice.h:62
JCMediaDevice::audioInterrupt
bool audioInterrupt
Definition: JCMediaDevice.h:73
JCMediaDevice::rotateAngleToScreen
JCMediaDeviceRotateAngle rotateAngleToScreen
Definition: JCMediaDevice.h:68
-[JCMediaDevice getScreenCaptureWindowId]
NSString *__nullable getScreenCaptureWindowId()
Definition: JCMediaDevice.m:629
-[JCMediaDevice stopAudioInput]
bool stopAudioInput()
Definition: JCMediaDevice.m:389
JCMediaDevice::autoRotate
bool autoRotate
Definition: JCMediaDevice.h:57
JCMediaDeviceVideoCanvas
Definition: JCMediaDeviceVideoCanvas.h:22
-[JCMediaDevice startAudioOutput]
bool startAudioOutput()
Definition: JCMediaDevice.m:401
JCClient
Definition: JCClient.h:22
-[JCMediaDevice startAudioInput]
bool startAudioInput()
Definition: JCMediaDevice.m:376