├── .github
├── ISSUE_TEMPLATE
│ └── bug_report.md
└── workflows
│ └── metrics.yml
├── .gitignore
├── .travis.yml
├── Archiving
├── Archiving.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Archiving.xcscheme
├── Archiving.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Archiving
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── LaunchScreen.xib
│ │ └── Main.storyboard
│ ├── Config.h
│ ├── Images.xcassets
│ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ ├── Info.plist
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── archiving_on-10.png
│ └── main.m
├── Podfile
└── README.md
├── Audio-Levels
├── Audio-Levels.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Audio-Levels.xcscheme
├── Audio-Levels.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Audio-Levels
│ ├── Audio-Levels-Info.plist
│ ├── Audio-Levels-Prefix.pch
│ ├── Base.lproj
│ │ └── Main.storyboard
│ ├── Default-568h@2x.png
│ ├── Default.png
│ ├── Default@2x.png
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── LaunchImage.launchimage
│ │ │ └── Contents.json
│ ├── OpenTokLogoWhite.png
│ ├── OpenTokLogoWhite@2x.png
│ ├── TBAppDelegate.h
│ ├── TBAppDelegate.m
│ ├── TBAudioLevelMeter.h
│ ├── TBAudioLevelMeter.m
│ ├── TBViewController.h
│ ├── TBViewController.m
│ ├── TBVoiceViewCell.h
│ ├── TBVoiceViewCell.m
│ ├── TBVoiceViewCell.xib
│ ├── archiving-off-15@2x.png
│ ├── archiving_on-10.png
│ ├── archiving_on-10@2x.png
│ ├── archiving_on-5.png
│ ├── archiving_on-5@2x.png
│ ├── archiving_pulse-15.png
│ ├── circle.png
│ ├── circle@2x.png
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── main.m
│ ├── microphoneActive.png
│ ├── microphoneActive@2x.png
│ ├── microphoneMuted.png
│ ├── microphoneMuted@2x.png
│ ├── silhouette.png
│ ├── silhouette@2x.png
│ ├── speakerActive.png
│ ├── speakerActive@2x.png
│ ├── speakerMuted.png
│ └── speakerMuted@2x.png
├── Podfile
└── README.md
├── Basic-Video-Chat-XCFramework
├── Basic-Video-Chat.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Basic-Video-Chat.xcscheme
├── Basic-Video-Chat.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Basic-Video-Chat
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Info.plist
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── Basic-Video-Chat
├── Basic-Video-Chat.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Basic-Video-Chat.xcscheme
├── Basic-Video-Chat.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Basic-Video-Chat
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Info.plist
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── Broadcast-Ext
├── Broadcast-Ext.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Broadcast-Ext.xcscheme
├── Broadcast-Ext.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Broadcast-Ext
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_Broadcast_iPhone.storyboard
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Broadcast-Ext.entitlements
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── LaunchImage.launchimage
│ │ │ └── Contents.json
│ ├── Info.plist
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── OpenTok Live
│ ├── Info.plist
│ ├── OTBroadcastExtAudioDevice.h
│ ├── OTBroadcastExtAudioDevice.m
│ ├── OTBroadcastExtHelper.h
│ ├── OTBroadcastExtHelper.m
│ ├── OpenTokLive.entitlements
│ ├── SampleHandler.h
│ └── SampleHandler.m
├── OpenTok LiveSetupUI
│ ├── BroadcastSetupViewController.h
│ ├── BroadcastSetupViewController.m
│ └── Info.plist
├── Podfile
└── README.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Camera-Controls
├── Camera-Controls.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Basic-Video-Chat.xcscheme
├── Camera-Controls.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Camera-Controls
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Info.plist
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── Custom-Audio-Driver
├── Custom-Audio-Driver.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Custom-Audio-Driver.xcscheme
├── Custom-Audio-Driver.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── External-Audio-Device
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Custom-Audio-Driver-Info.plist
│ ├── Custom-Audio-Driver-Prefix.pch
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── OTDefaultAudioDevice.h
│ ├── OTDefaultAudioDevice.mm
│ ├── OTDefaultAudioDeviceWithVolumeControl.h
│ ├── OTDefaultAudioDeviceWithVolumeControl.m
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── Custom-Video-Driver
├── Custom-Video-Driver.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Custom-Video-Driver.xcscheme
├── Custom-Video-Driver.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Lets-Build-OTPublisher
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Custom-Video-Driver-Info.plist
│ ├── Custom-Video-Driver-Prefix.pch
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── Contents.json
│ │ └── LaunchImage.launchimage
│ │ │ └── Contents.json
│ ├── Multi-Cam-Capturer
│ │ ├── TBCaptureMultiCamFactory.h
│ │ ├── TBCaptureMultiCamFactory.m
│ │ ├── TBExampleMultiCamCapture.h
│ │ └── TBExampleMultiCamCapture.m
│ ├── Single-Cam-Capturer
│ │ ├── TBExampleVideoCapture.h
│ │ └── TBExampleVideoCapture.m
│ ├── TBExampleVideoRender.h
│ ├── TBExampleVideoRender.m
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── FrameMetadata
├── FrameMetadata.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── FrameMetadata.xcscheme
├── FrameMetadata.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── FrameMetadata
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── FrameMetadata.pch
│ ├── FrameMetadata.plist
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── LaunchImage.launchimage
│ │ │ └── Contents.json
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── LICENSE
├── Live-Photo-Capture
├── Live-Photo-Capture.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Live-Photo-Capture.xcscheme
├── Live-Photo-Capture.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Live-Photo-Capture
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Live-Photo-Capture-Info.plist
│ ├── Live-Photo-Capture-Prefix.pch
│ ├── TBExamplePhotoVideoCapture.h
│ ├── TBExamplePhotoVideoCapture.m
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── Media-Transformers
├── CHANGELOG.md
├── Media-Transformers.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Basic-Video-Chat.xcscheme
├── Media-Transformers.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Media-Transformers
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Info.plist
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── Vonage_Logo.png
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ └── main.m
├── Podfile
└── README.md
├── OpenTokSDKVersion.rb
├── Overlay-Graphics
├── Overlay-Graphics.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Overlay-Graphics.xcscheme
├── Overlay-Graphics.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Overlay-Graphics
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── Main_iPad.storyboard
│ │ └── Main_iPhone.storyboard
│ ├── Headset.png
│ ├── Headset@2x.png
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── LaunchImage.launchimage
│ │ │ └── Contents.json
│ ├── Overlay-Graphics-Info.plist
│ ├── Overlay-Graphics-Prefix.pch
│ ├── TBAudioLevelMeter.h
│ ├── TBAudioLevelMeter.m
│ ├── TBExampleOverlayButton.h
│ ├── TBExampleOverlayButton.m
│ ├── TBExampleOverlayView.h
│ ├── TBExampleOverlayView.m
│ ├── TBExampleUnderlayView.h
│ ├── TBExampleUnderlayView.m
│ ├── TBExampleVideoCapture.h
│ ├── TBExampleVideoCapture.m
│ ├── TBExampleVideoView.h
│ ├── TBExampleVideoView.m
│ ├── UIBezierPath+Additions.h
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── archiving_off-Small.png
│ ├── archiving_off-Small@2x.png
│ ├── archiving_on-10.png
│ ├── archiving_on-10@2x.png
│ ├── archiving_pulse-Small.png
│ ├── archiving_pulse-Small@2x.png
│ ├── audioOnlyActive.png
│ ├── audioOnlyInactive.png
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── highCongestion.png
│ ├── libyuv.h
│ ├── libyuv
│ │ ├── basic_types.h
│ │ ├── compare.h
│ │ ├── convert.h
│ │ ├── convert_argb.h
│ │ ├── convert_from.h
│ │ ├── convert_from_argb.h
│ │ ├── cpu_id.h
│ │ ├── format_conversion.h
│ │ ├── mjpeg_decoder.h
│ │ ├── planar_functions.h
│ │ ├── rotate.h
│ │ ├── rotate_argb.h
│ │ ├── row.h
│ │ ├── scale.h
│ │ ├── scale_argb.h
│ │ ├── scale_row.h
│ │ ├── version.h
│ │ └── video_common.h
│ ├── main.m
│ ├── midCongestion.png
│ ├── mutePublisher.png
│ ├── muteSubscriber.png
│ ├── silhouette.png
│ ├── swapCamera.png
│ ├── unmutePublisher.png
│ └── unmuteSubscriber.png
├── Podfile
└── README.md
├── README.md
├── Ringtones
├── Podfile
├── README.md
├── Ringtones.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Ringtones.xcscheme
├── Ringtones.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── Ringtones
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
│ ├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
│ ├── Info.plist
│ ├── OTAudioDeviceRingtone.h
│ ├── OTAudioDeviceRingtone.m
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── bananaphone.mp3
│ └── main.m
├── Screen-Sharing
├── Podfile
├── README.md
├── Screen-Sharing.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Screen-Sharing.xcscheme
├── Screen-Sharing.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── Screen-Sharing
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ ├── Main_iPad.storyboard
│ └── Main_iPhone.storyboard
│ ├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ └── LaunchImage.launchimage
│ │ └── Contents.json
│ ├── Screen-Sharing-Info.plist
│ ├── Screen-Sharing-Prefix.pch
│ ├── TBScreenCapture.h
│ ├── TBScreenCapture.m
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── en.lproj
│ └── InfoPlist.strings
│ ├── logo_opentok_registered.png
│ └── main.m
├── Signaling
├── Podfile
├── README.md
├── Signaling.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Signaling.xcscheme
├── Signaling.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── Signaling
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ ├── LaunchScreen.xib
│ └── Main.storyboard
│ ├── Config.h
│ ├── Images.xcassets
│ └── AppIcon.appiconset
│ │ └── Contents.json
│ ├── Info.plist
│ ├── Subscriber-Speaker-35.png
│ ├── Subscriber-Speaker-35@2x.png
│ ├── Subscriber-Speaker-Mute-35.png
│ ├── Subscriber-Speaker-Mute-35@2x.png
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── camera-switch_black-33.png
│ ├── camera_switch-33.png
│ ├── main.m
│ ├── mic-24.png
│ └── mic_muted-24.png
├── Simple-Multiparty
├── Multi-Party-Call
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Bandwidth_meter_strong-23.png
│ ├── Bandwidth_meter_strong-23@2x.png
│ ├── Bandwidth_meter_weak-23.png
│ ├── Bandwidth_meter_weak-23@2x.png
│ ├── Base.lproj
│ │ └── Main_iPhone.storyboard
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Simple-Multiparty-Info.plist
│ ├── Simple-Multiparty-Prefix.pch
│ ├── Subscriber-Speaker-35.png
│ ├── Subscriber-Speaker-35@2x.png
│ ├── Subscriber-Speaker-Mute-35.png
│ ├── Subscriber-Speaker-Mute-35@2x.png
│ ├── TB Bug-30.png
│ ├── TB Bug-30@2x.png
│ ├── ViewController.h
│ ├── ViewController.m
│ ├── archiving-off-15@2x.png
│ ├── archiving_on-5.png
│ ├── archiving_on-5@2x.png
│ ├── archiving_pulse-15.png
│ ├── camera-switch_black-33.png
│ ├── camera-switch_black-33@2x.png
│ ├── camera_switch-33.png
│ ├── camera_switch-33@2x.png
│ ├── en.lproj
│ │ └── InfoPlist.strings
│ ├── icon_arrowLeft_disabled-28.png
│ ├── icon_arrowLeft_disabled-28@2x.png
│ ├── icon_arrowLeft_enabled-28.png
│ ├── icon_arrowLeft_enabled-28@2x.png
│ ├── icon_arrowRight_disabled-28.png
│ ├── icon_arrowRight_disabled-28@2x.png
│ ├── icon_arrowRight_enabled-28.png
│ ├── icon_arrowRight_enabled-28@2x.png
│ ├── libyuv.h
│ ├── libyuv
│ │ ├── basic_types.h
│ │ ├── compare.h
│ │ ├── convert.h
│ │ ├── convert_argb.h
│ │ ├── convert_from.h
│ │ ├── convert_from_argb.h
│ │ ├── cpu_id.h
│ │ ├── format_conversion.h
│ │ ├── mjpeg_decoder.h
│ │ ├── planar_functions.h
│ │ ├── rotate.h
│ │ ├── rotate_argb.h
│ │ ├── row.h
│ │ ├── scale.h
│ │ ├── scale_argb.h
│ │ ├── scale_row.h
│ │ ├── version.h
│ │ └── video_common.h
│ ├── main.m
│ ├── mic-24.png
│ ├── mic-24@2x.png
│ ├── mic_muted-24.png
│ ├── mic_muted-24@2x.png
│ ├── mic_receiving_data-35.png
│ └── mic_receiving_data-35@2x.png
├── Podfile
├── README.md
├── Simple-Multiparty.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Simple-Multiparty.xcscheme
└── Simple-Multiparty.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ └── IDEWorkspaceChecks.plist
└── travis_build.sh
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 |
16 | **Expected behavior**
17 | A clear and concise description of what you expected to happen.
18 |
19 | **Screenshots**
20 | If applicable, add screenshots to help explain your problem.
21 |
22 | **Device (please compete the following information):**
23 | - sessionId, if applicable:
24 | - iOS SDK version:
25 | - OS and version:
26 |
27 | **Additional context**
28 | Add any other context about the problem here.
29 |
--------------------------------------------------------------------------------
/.github/workflows/metrics.yml:
--------------------------------------------------------------------------------
1 | name: Aggregit
2 |
3 | on:
4 | schedule:
5 | - cron: "0 0 * * *"
6 |
7 | jobs:
8 | recordMetrics:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: michaeljolley/aggregit@v1
12 | with:
13 | githubToken: ${{ secrets.GITHUB_TOKEN }}
14 | project_id: ${{ secrets.project_id }}
15 | private_key: ${{ secrets.private_key }}
16 | client_email: ${{ secrets.client_email }}
17 | firebaseDbUrl: ${{ secrets.firebaseDbUrl }}
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | Podfile.lock
2 | OpenTok.framework/
3 | OpenTok.framework
4 |
5 | # Xcode
6 | .DS_Store
7 | */build/*
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | profile
18 | *.moved-aside
19 | DerivedData
20 | .idea/
21 | *.hmap
22 | *.xccheckout
23 |
24 | #CocoaPods
25 | Pods
26 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | os: osx
2 | osx_image: xcode13.0
3 | language: objective-c
4 |
5 | cache:
6 | directories:
7 | - $HOME/.cocoapods
8 |
9 | before_install:
10 | - set -x
11 | - gem install cocoapods
12 | - pod repo update > /dev/null
13 |
14 | script:
15 | - ./travis_build.sh
16 |
--------------------------------------------------------------------------------
/Archiving/Archiving.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Archiving/Archiving.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Archiving/Archiving.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Archiving/Archiving.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Archiving/Archiving/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Getting Started
4 | //
5 | // Created by Swartz on 11/19/14.
6 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/Archiving/Archiving/Config.h:
--------------------------------------------------------------------------------
1 | //
2 | // Config.h
3 | // Getting Started
4 | //
5 | // Created by Swartz on 12/1/14.
6 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #ifndef Getting_Started_Config_h
10 | #define Getting_Started_Config_h
11 |
12 | /*
13 | Set SAMPLE_SERVER_BASE_URL to the base URL of the web server that implements
14 | the OpenTok PHP Getting Started Sample code (see the main README file.) This
15 | web service handles some OpenTok-related API calls, related to obtaining
16 | session IDs and tokens, and for working with archives.
17 | */
18 |
19 | // If you run the app from a device under localhost,
20 | // the app can connect to your localhost by pointing the url to the localhost's IP address.
21 | #define SAMPLE_SERVER_BASE_URL @"http://localhost:8080"
22 |
23 | #endif
24 |
--------------------------------------------------------------------------------
/Archiving/Archiving/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/Archiving/Archiving/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Getting Started
4 | //
5 | // Created by Jeff Swartz on 11/19/14.
6 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Archiving/Archiving/archiving_on-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Archiving/Archiving/archiving_on-10.png
--------------------------------------------------------------------------------
/Archiving/Archiving/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LearningOpenTok
4 | //
5 | // Created by Swartz on 4/17/15.
6 | // Copyright (c) 2015 TokBox. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Archiving/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Archiving' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Archiving/README.md:
--------------------------------------------------------------------------------
1 | Archiving sample app
2 | ====================
3 |
4 | This sample app shows how to record an OpenTok session, stop the recording, and view the recording.
5 | For a full description, see the [archiving tutorial at the OpenTok developer
6 | center](https://tokbox.com/developer/tutorials/ios/basic-video-chat/).
7 |
8 | This application provides a completed version of the OpenTok Archiving tutorial for iOS (differing only in some additional validation checks). Upon deploying this sample application, you should be able to start, stop, and play back recordings of your sessions.
9 |
10 | If you aren't familiar with how to set up a basic video chat application, you should do that first. Check out the [Basic-Video-Chat project](https://github.com/opentok/opentok-ios-sdk-samples/tree/develop/Basic-Video-Chat), and [accompanying tutorial](https://tokbox.com/developer/tutorials/ios/basic-video-chat/).
11 |
12 | Note that you will need a valid TokBox account for this and all other TokBox samples and tutorials.
13 |
14 | ## Quick Start
15 |
16 | #### 1. Deploy a sample back end web service
17 | Because the actual archiving is not done on the user's device, but in the OpenTok cloud, you will need to set up a web service that communicates with it to start and stop archiving.
18 |
19 | For the purposes of this tutorial, we'll be using a pre-built sample that we've provided. You can deploy this by going to the [learning-opentok-php](https://github.com/opentok/learning-opentok-php) repository, and clicking on the purple deploy to Heroku button.
20 |
21 | You can look through the details of that tutorial at a later point. For now, you just need to know that the sample web service provides a RESTful interface to interact with Archiving controls.
22 |
23 | #### 2. Configure the app to use your web service
24 | In `Config.h`, configure the `SAMPLE_SERVER_BASE_URL` string to your web service domain.
25 |
26 | #### 3. Use Xcode to build and run the app on an iOS simulator or device.
27 | That's it!
28 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/Audio-Levels-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | NSCameraUsageDescription
28 | Opentok needs access to the camera to stream your video
29 | NSMicrophoneUsageDescription
30 | Opentok needs access to the microphone to stream your audio
31 | UIBackgroundModes
32 |
33 | audio
34 |
35 | UIMainStoryboardFile
36 | Main
37 | UIRequiredDeviceCapabilities
38 |
39 | armv7
40 |
41 | UIStatusBarTintParameters
42 |
43 | UINavigationBar
44 |
45 | Style
46 | UIBarStyleDefault
47 | Translucent
48 |
49 |
50 |
51 | UISupportedInterfaceOrientations
52 |
53 | UIInterfaceOrientationPortrait
54 | UIInterfaceOrientationLandscapeLeft
55 | UIInterfaceOrientationLandscapeRight
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/Audio-Levels-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/Default-568h@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/Default.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/Default@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/OpenTokLogoWhite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/OpenTokLogoWhite.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/OpenTokLogoWhite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/OpenTokLogoWhite@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/TBAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBAppDelegate.h
3 | // Audio-Levels
4 | //
5 | // Created by Sridhar on 31/07/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface TBAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/TBAudioLevelMeter.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBAudioLevelMeter.h
3 | // TestAudioMeter
4 | //
5 | // Created by Sridhar on 02/06/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface TBAudioLevelMeter : UIView
12 | {
13 |
14 | }
15 | @property(assign, nonatomic) CGFloat level;
16 | @property(assign, nonatomic) UIView* toucesPassToView;
17 | @end
18 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/TBViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Multi-Party-Call
4 | //
5 | // Created by Sridhar on 07/04/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 | #import "TBVoiceViewCell.h"
13 |
14 | @interface TBViewController : UIViewController {
18 |
19 | }
20 | @property (strong, nonatomic) IBOutlet UIScrollView *videoContainerView;
21 | @property (strong, nonatomic) IBOutlet UIView *bottomOverlayView;
22 | @property (retain, nonatomic) IBOutlet UIButton *endCallButton;
23 | @property (retain, nonatomic) IBOutlet UIView *archiveOverlay;
24 | @property (retain, nonatomic) IBOutlet UILabel *archiveStatusLbl;
25 | @property (retain, nonatomic) IBOutlet UIImageView *archiveStatusImgView;
26 | @property (retain, nonatomic) NSString *publisherName;
27 | @property (retain, nonatomic) IBOutlet UIActivityIndicatorView *spinningWheel;
28 | @property (retain, nonatomic) IBOutlet UITableView *tableView;
29 | @property (retain, nonatomic) IBOutlet UIView *publisherView;
30 | @property (retain, nonatomic) IBOutlet UIImageView *publisherProfileImgVIew;
31 | @property (retain, nonatomic) IBOutlet UILabel *publisherNameLbl;
32 | @property (retain, nonatomic) IBOutlet UIView *publisherMicContainerView;
33 | @property (retain, nonatomic) IBOutlet UIButton *publisherMicButton;
34 | @property (retain, nonatomic) TBAudioLevelMeter *publisherAudioLevelMeter;
35 |
36 | - (IBAction)toggleAudioPublish:(id)sender;
37 | - (IBAction)endCallAction:(UIButton *)button;
38 | @end
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/TBVoiceViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBVoiceViewCell.h
3 | // OpenTokRTC
4 | //
5 | // Created by Sridhar on 28/07/14.
6 | // Copyright (c) 2014 Song Zheng. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "TBAudioLevelMeter.h"
11 | #import
12 |
13 | @interface TBVoiceViewCell : UITableViewCell
14 | {
15 |
16 | }
17 | - (IBAction)toggleSubscribeAudio:(id)sender;
18 |
19 | @property (retain, nonatomic) TBAudioLevelMeter *audioLevelMeter;
20 | @property (retain, nonatomic) IBOutlet UIImageView *profileImgView;
21 | @property (retain, nonatomic) IBOutlet UILabel *name;
22 | @property (retain, nonatomic) IBOutlet UIView *spkrContainerView;
23 | @property (retain, nonatomic) IBOutlet UIButton *spkrButtonView;
24 | @property (assign, nonatomic) OTSubscriber *subscriber;
25 | @end
26 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/TBVoiceViewCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // TBVoiceViewCell.m
3 | // OpenTokRTC
4 | //
5 | // Created by Sridhar on 28/07/14.
6 | // Copyright (c) 2014 Song Zheng. All rights reserved.
7 | //
8 |
9 | #import "TBVoiceViewCell.h"
10 |
11 | @implementation TBVoiceViewCell
12 |
13 | - (void)awakeFromNib
14 | {
15 | // Initialization code
16 | // audio level meter
17 | [super awakeFromNib];
18 | _audioLevelMeter = [[TBAudioLevelMeter alloc]
19 | initWithFrame:CGRectZero];
20 | _audioLevelMeter.opaque = false;
21 | _audioLevelMeter.userInteractionEnabled = NO;
22 | CGRect frame = _spkrButtonView.frame;
23 | _audioLevelMeter.frame = frame;
24 | [_spkrContainerView addSubview:_audioLevelMeter];
25 | }
26 |
27 | - (void)setSelected:(BOOL)selected animated:(BOOL)animated
28 | {
29 | [super setSelected:selected animated:animated];
30 |
31 | // Configure the view for the selected state
32 | }
33 |
34 | - (void)subscriber:(OTSubscriberKit *)subscriber
35 | audioLevelUpdated:(float)audioLevel{
36 | float db = 20 * log10(audioLevel);
37 | float floor = -40;
38 | float level = 0;
39 | if (db > floor) {
40 | level = db + fabsf(floor);
41 | level /= fabsf(floor);
42 | }
43 | self.audioLevelMeter.level = level;
44 | }
45 |
46 | - (IBAction)toggleSubscribeAudio:(id)sender {
47 | if (self.subscriber.subscribeToAudio == YES) {
48 | self.audioLevelMeter.level = 0.0f;
49 | self.name.alpha = .75f;
50 | self.subscriber.audioLevelDelegate = nil;
51 | self.subscriber.subscribeToAudio = NO;
52 | self.spkrButtonView.selected = YES;
53 | } else {
54 | self.name.alpha = 1;
55 | self.subscriber.audioLevelDelegate = self;
56 | self.subscriber.subscribeToAudio = YES;
57 | self.spkrButtonView.selected = NO;
58 | }
59 | }
60 | @end
61 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/archiving-off-15@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/archiving-off-15@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/archiving_on-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/archiving_on-10.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/archiving_on-10@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/archiving_on-10@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/archiving_on-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/archiving_on-5.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/archiving_on-5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/archiving_on-5@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/archiving_pulse-15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/archiving_pulse-15.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/circle.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/circle@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/circle@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Audio-Levels
4 | //
5 | // Created by Sridhar on 31/07/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "TBAppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([TBAppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/microphoneActive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/microphoneActive.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/microphoneActive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/microphoneActive@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/microphoneMuted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/microphoneMuted.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/microphoneMuted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/microphoneMuted@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/silhouette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/silhouette.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/silhouette@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/silhouette@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/speakerActive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/speakerActive.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/speakerActive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/speakerActive@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/speakerMuted.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/speakerMuted.png
--------------------------------------------------------------------------------
/Audio-Levels/Audio-Levels/speakerMuted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Audio-Levels/Audio-Levels/speakerMuted@2x.png
--------------------------------------------------------------------------------
/Audio-Levels/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Audio-Levels' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Audio-Levels/README.md:
--------------------------------------------------------------------------------
1 | Audio Levels
2 | ==================================
3 |
4 | This project shows how to use the OpenTok iOS SDK to develop audio-only calls
5 | with multiple subscribers and audio levels. By the end of a code review, you
6 | should learn how to add audio only calls with the OpenTok iOS SDK.
7 |
8 | *Important:* To use this application, follow the instructions in the
9 | [Quick Start](../README.md#quick-start) section of the main README file
10 | for this repository.
11 |
12 | Application Notes
13 | =================
14 |
15 | * This sample shows an audio-only session with audio level meter for each
16 | subscriber as well as the publisher. The sample supports multiple audio-only
17 | subscribers.
18 |
19 | * The app sets the `audioLevelDelegate` property of the OTPublisherKit
20 | instance (in the TBViewController.m). As a result, the
21 | `[OTPublisherKitDelegate publisher: audioLevelUpdated:]` message is sent
22 | periodically to report audio levels of the published stream. The level
23 | in the publisher's audio level meter is updated accordingly.
24 |
25 | Similarly, the app sets the `audioLevelDelegate` property of the
26 | OTSubscriberKit instance (in the TBVoiceViewCell.m file). As a result,
27 | the `[OTSubscriberKit subscriber audioLevelUpdated:]` is sent
28 | periodically to report audio levels of the subscribed stream. The level
29 | in the subscriber's audio level meter is updated accordingly.
30 |
31 | * The sample includes mute and unmute buttons for the publisher and subscribers.
32 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Basic-Video-Chat/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Hello-World
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Basic-Video-Chat' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Basic-Video-Chat-XCFramework/README.md:
--------------------------------------------------------------------------------
1 | Basic Video Chat sample app
2 | ===========================
3 |
4 | **NOTE:** *OTXCFramework only exists for versions 2.20.0 and above*
5 |
6 | The Basic Video Chat app is a very simple application meant to get a new developer
7 | started using the OpenTok iOS SDK. For a full description, see the [Basic tutorial at the
8 | OpenTok developer center](https://tokbox.com/developer/tutorials/ios/basic-video-chat/).
9 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "scale" : "1x",
91 | "size" : "1024x1024"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Basic-Video-Chat/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Hello-World
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Basic-Video-Chat' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Basic-Video-Chat/README.md:
--------------------------------------------------------------------------------
1 | Basic Video Chat sample app
2 | ===========================
3 |
4 | The Basic Video Chat app is a very simple application meant to get a new developer
5 | started using the OpenTok iOS SDK. For a full description, see the [Basic tutorial at the
6 | OpenTok developer center](https://tokbox.com/developer/tutorials/ios/basic-video-chat/).
7 |
8 |
9 | Adding the OpenTok library
10 | ==========================
11 | In this example the OpenTok iOS SDK was not included as a dependency,
12 | you can do it through Swift Package Manager or Cocoapods.
13 |
14 |
15 | Swift Package Manager
16 | ---------------------
17 | To add a package dependency to your Xcode project, you should select
18 | *File* > *Swift Packages* > *Add Package Dependency* and enter the repository URL:
19 | `https://github.com/opentok/vonage-client-sdk-video.git`.
20 |
21 |
22 | Cocoapods
23 | ---------
24 | To use CocoaPods to add the OpenTok library and its dependencies into this sample app
25 | simply open Terminal, navigate to the root directory of the project and run: `pod install`.
26 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/Base.lproj/Main_iPhone.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/Broadcast-Ext.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.application-groups
6 |
7 | group.opentok.broadcast.live
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | }
88 | ],
89 | "info" : {
90 | "version" : 1,
91 | "author" : "xcode"
92 | }
93 | }
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | },
18 | {
19 | "orientation" : "portrait",
20 | "idiom" : "ipad",
21 | "extent" : "full-screen",
22 | "minimum-system-version" : "7.0",
23 | "scale" : "1x"
24 | },
25 | {
26 | "orientation" : "landscape",
27 | "idiom" : "ipad",
28 | "extent" : "full-screen",
29 | "minimum-system-version" : "7.0",
30 | "scale" : "1x"
31 | },
32 | {
33 | "orientation" : "portrait",
34 | "idiom" : "ipad",
35 | "extent" : "full-screen",
36 | "minimum-system-version" : "7.0",
37 | "scale" : "2x"
38 | },
39 | {
40 | "orientation" : "landscape",
41 | "idiom" : "ipad",
42 | "extent" : "full-screen",
43 | "minimum-system-version" : "7.0",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import "ViewController.h"
9 | #import
10 |
11 | @implementation ViewController
12 | #if !(TARGET_OS_SIMULATOR)
13 | API_AVAILABLE(ios(12.0))
14 | RPSystemBroadcastPickerView *_broadcastPickerView;
15 | #endif
16 |
17 | #pragma mark - View lifecycle
18 | - (void)viewDidLoad
19 | {
20 | [super viewDidLoad];
21 |
22 | #if !(TARGET_OS_SIMULATOR)
23 | if (@available(iOS 12.0, *)) {
24 | _broadcastPickerView = [[RPSystemBroadcastPickerView alloc] initWithFrame:
25 | CGRectMake(0, 0, 50, 50)];
26 | _broadcastPickerView.preferredExtension = @"com.tokbox.Broadcast-Ext-Sample.OpenTok-Live";
27 | _broadcastPickerView.center = self.view.center;
28 | } else {
29 | // Fallback on earlier versions
30 | }
31 |
32 | if (@available(iOS 12.0, *)) {
33 | [self.view addSubview:_broadcastPickerView];
34 | }
35 | #endif
36 |
37 | }
38 |
39 | - (BOOL)prefersStatusBarHidden
40 | {
41 | return YES;
42 | }
43 |
44 | - (BOOL)shouldAutorotate {
45 | return UIUserInterfaceIdiomPhone != [[UIDevice currentDevice] userInterfaceIdiom];
46 | }
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Broadcast-Ext/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Hello-World
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok Live/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleDisplayName
8 | OpenTok Live
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | XPC!
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | NSExtension
24 |
25 | NSExtensionPointIdentifier
26 | com.apple.broadcast-services-upload
27 | NSExtensionPrincipalClass
28 | SampleHandler
29 | RPBroadcastProcessMode
30 | RPBroadcastProcessModeSampleBuffer
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok Live/OTBroadcastExtAudioDevice.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTAudioDeviceIOSDefault.h
3 | //
4 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
5 | //
6 |
7 | #import
8 | #import
9 |
10 | #define kMixerInputBusCount 2
11 | #define kOutputBus 0
12 | #define kInputBus 1
13 |
14 | #define AUDIO_DEVICE_HEADSET @"AudioSessionManagerDevice_Headset"
15 | #define AUDIO_DEVICE_BLUETOOTH @"AudioSessionManagerDevice_Bluetooth"
16 | #define AUDIO_DEVICE_SPEAKER @"AudioSessionManagerDevice_Speaker"
17 |
18 | @interface OTBroadcastExtAudioDevice : NSObject
19 | {
20 | AudioStreamBasicDescription stream_format;
21 | }
22 |
23 | /**
24 | Returns YES if a wired headset is available.
25 | */
26 | @property (nonatomic, readonly) BOOL headsetDeviceAvailable;
27 |
28 | /**
29 | Returns YES if a bluetooth device is available.
30 | */
31 | @property (nonatomic, readonly) BOOL bluetoothDeviceAvailable;
32 |
33 | - (BOOL)setAudioBus:(id)audioBus;
34 |
35 | - (OTAudioFormat*)captureFormat;
36 | - (OTAudioFormat*)renderFormat;
37 |
38 | - (BOOL)renderingIsAvailable;
39 | - (BOOL)initializeRendering;
40 | - (BOOL)renderingIsInitialized;
41 | - (BOOL)captureIsAvailable;
42 | - (BOOL)initializeCapture;
43 | - (BOOL)captureIsInitialized;
44 |
45 | - (BOOL)startRendering;
46 | - (BOOL)stopRendering;
47 | - (BOOL)isRendering;
48 | - (BOOL)startCapture;
49 | - (BOOL)stopCapture;
50 | - (BOOL)isCapturing;
51 |
52 | - (uint16_t)estimatedRenderDelay;
53 | - (uint16_t)estimatedCaptureDelay;
54 |
55 | //desired Audio Route can be bluetooth and headset.
56 | //bluetooth has higher priority of all, next headset, next speaker
57 | - (BOOL)configureAudioSessionWithDesiredAudioRoute:(NSString*)desiredAudioRoute;
58 | - (BOOL)detectCurrentRoute;
59 |
60 | - (BOOL)setPlayOutRenderCallback:(AudioUnit)unit;
61 |
62 | -(void)writeAudioSamples:(CMSampleBufferRef)sampleBuffer;
63 | - (void) setupAudioSession;
64 | @end
65 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok Live/OTBroadcastExtHelper.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTBroadcastExtHelper.h
3 | // OpenTok Live
4 | //
5 | // Created by Sridhar Bollam on 8/5/19.
6 | // Copyright © 2019 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface OTBroadcastExtHelper : NSObject
15 | {
16 |
17 | }
18 |
19 | -(instancetype)initWithPartnerId:(NSString *)partnerId
20 | sessionId:(NSString *)sessionId
21 | andToken:(NSString *)token
22 | videoCapturer:(id )videoCapturer;
23 |
24 | -(void)connect;
25 | -(void)disconnect;
26 | - (BOOL)isConnected;
27 |
28 | -(void)writeAudioSamples:(CMSampleBufferRef)sampleBuffer;
29 |
30 | @end
31 |
32 | NS_ASSUME_NONNULL_END
33 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok Live/OpenTokLive.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.application-groups
6 |
7 | group.opentok.broadcast.live
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok Live/SampleHandler.h:
--------------------------------------------------------------------------------
1 | //
2 | // SampleHandler.h
3 | // OpenTok Live
4 | //
5 | // Created by Sridhar Bollam on 8/4/19.
6 | // Copyright © 2019 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface SampleHandler : RPBroadcastSampleHandler
13 | {
14 |
15 | }
16 |
17 | @property(atomic, weak) id _Nullable videoCaptureConsumer;
18 | @end
19 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok LiveSetupUI/BroadcastSetupViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BroadcastSetupViewController.h
3 | // OpenTok LiveSetupUI
4 | //
5 | // Created by Sridhar Bollam on 8/4/19.
6 | // Copyright © 2019 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface BroadcastSetupViewController : UIViewController
13 | - (IBAction)startSharing:(id)sender;
14 | - (IBAction)cancel:(id)sender;
15 | @property (weak, nonatomic) IBOutlet UIBarButtonItem *startButton;
16 | @property (weak, nonatomic) IBOutlet UIBarButtonItem *cancelButton;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok LiveSetupUI/BroadcastSetupViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // BroadcastSetupViewController.m
3 | // OpenTok LiveSetupUI
4 | //
5 | // Created by Sridhar Bollam on 8/4/19.
6 | // Copyright © 2019 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import "BroadcastSetupViewController.h"
10 |
11 | @implementation BroadcastSetupViewController
12 |
13 | // Call this method when the user has finished interacting with the view controller and a broadcast stream can start
14 | - (void)userDidFinishSetup {
15 |
16 | // URL of the resource where broadcast can be viewed that will be returned to the application
17 | NSURL *broadcastURL = [NSURL URLWithString:@"http://apple.com/broadcast/streamID"];
18 |
19 | // Dictionary with setup information that will be provided to broadcast extension when broadcast is started
20 | NSDictionary *setupInfo = @{ @"streamId" : @"test"};
21 |
22 | // Tell ReplayKit that the extension is finished setting up and can begin broadcasting
23 | [self.extensionContext completeRequestWithBroadcastURL:broadcastURL setupInfo:setupInfo];
24 | }
25 |
26 | - (void)userDidCancelSetup {
27 | // Tell ReplayKit that the extension was cancelled by the user
28 | [self.extensionContext cancelRequestWithError:[NSError errorWithDomain:@"YourAppDomain" code:-1 userInfo:nil]];
29 | }
30 |
31 | - (IBAction)startSharing:(id)sender {
32 | [self userDidFinishSetup];
33 | }
34 |
35 | - (IBAction)cancel:(id)sender {
36 | [self userDidCancelSetup];
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/Broadcast-Ext/OpenTok LiveSetupUI/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleDisplayName
8 | OpenTok LiveSetupUI
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | XPC!
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | NSExtension
24 |
25 | NSExtensionAttributes
26 |
27 | NSExtensionActivationRule
28 |
29 | NSExtensionActivationSupportsReplayKitStreaming
30 |
31 |
32 |
33 | NSExtensionMainStoryboard
34 | Main_Broadcast_iPhone
35 | NSExtensionPointIdentifier
36 | com.apple.broadcast-services-setupui
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/Broadcast-Ext/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Broadcast-Ext' do
7 | target 'OpenTok Live' do
8 | pod 'OTXCFramework', OpenTokSDKVersion
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "scale" : "1x",
91 | "size" : "1024x1024"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Camera-Controls/Camera-Controls/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Hello-World
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Camera-Controls/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Camera-Controls' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | pod 'VonageClientSDKVideoTransformers', OpenTokSDKVersion
9 | end
10 |
--------------------------------------------------------------------------------
/Camera-Controls/README.md:
--------------------------------------------------------------------------------
1 | Camera Controls sample app
2 | ===========================
3 |
4 | This application, built on top of Basic Video Chat, showcases how to set the preferred torch/flashlight mode and zoom factor for the camera.
5 | Note that this is a preference and may not take effect if the active camera does not support the functionality (for example, the front camera typically does not support torch).
6 |
7 | The default value for torch is false. Passing true or false indicates whether the publisher should enable
8 | or disable the camera's torch when available.
9 |
10 | The zoom factor values range from 0.5 to the maximum zoom factor. Values between 0.5 and 1.0 will represent
11 | ultra-wide-angle (zoom out) and values between 1.0 and the maximum zoom factor will represent
12 | zooming in. The actual zoom factor applied will be automatically clamped to the range supported by the active
13 | camera's configuration, meaning if the camera does not support ultra-wide-angle, zoom factors set below 1.0
14 | will not take effect and no zoom will be applied. For values over the maximum zoom factor supported by the
15 | camera, the zoom factor will be set with the max value. The value of 1.0 represents no zoom (the default view).
16 |
17 | ## Code sample - How to Enable Torch
18 |
19 | ```objc
20 | publisher.cameraTorch = YES;
21 | publisher.cameraZoomFactor = 5.0;
22 | ```
23 |
24 | Adding the OpenTok library
25 | ==========================
26 | In this example the OpenTok iOS SDK was not included as a dependency,
27 | you can do it through Swift Package Manager or Cocoapods.
28 |
29 |
30 | Swift Package Manager
31 | ---------------------
32 | To add a package dependency to your Xcode project, you should select
33 | *File* > *Swift Packages* > *Add Package Dependency* and enter the repository URL:
34 | `https://github.com/opentok/vonage-client-sdk-video.git`.
35 |
36 |
37 | Cocoapods
38 | ---------
39 | To use CocoaPods to add the OpenTok library and its dependencies into this sample app
40 | simply open Terminal, navigate to the root directory of the project and run: `pod install`.
41 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/Custom-Audio-Driver.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/Custom-Audio-Driver.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/Custom-Audio-Driver.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/Custom-Audio-Driver.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // External-Audio-Device
4 | //
5 | // Copyright (c) 2014 TokBox Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/Base.lproj/Main_iPhone.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/Custom-Audio-Driver-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "83.5x83.5",
66 | "scale" : "2x"
67 | }
68 | ],
69 | "info" : {
70 | "version" : 1,
71 | "author" : "xcode"
72 | }
73 | }
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/OTDefaultAudioDevice.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTAudioDeviceIOSDefault.h
3 | //
4 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
5 | //
6 |
7 | #import
8 | #import
9 |
10 | #define kMixerInputBusCount 2
11 | #define kOutputBus 0
12 | #define kInputBus 1
13 |
14 | #define AUDIO_DEVICE_HEADSET @"AudioSessionManagerDevice_Headset"
15 | #define AUDIO_DEVICE_BLUETOOTH @"AudioSessionManagerDevice_Bluetooth"
16 | #define AUDIO_DEVICE_SPEAKER @"AudioSessionManagerDevice_Speaker"
17 |
18 | @interface OTDefaultAudioDevice : NSObject
19 | {
20 | AudioStreamBasicDescription stream_format;
21 | }
22 |
23 | /**
24 | Returns YES if a wired headset is available.
25 | */
26 | @property (nonatomic, readonly) BOOL headsetDeviceAvailable;
27 |
28 | /**
29 | Returns YES if a bluetooth device is available.
30 | */
31 | @property (nonatomic, readonly) BOOL bluetoothDeviceAvailable;
32 |
33 | - (BOOL)setAudioBus:(id)audioBus;
34 |
35 | - (OTAudioFormat*)captureFormat;
36 | - (OTAudioFormat*)renderFormat;
37 |
38 | - (BOOL)renderingIsAvailable;
39 | - (BOOL)initializeRendering;
40 | - (BOOL)renderingIsInitialized;
41 | - (BOOL)captureIsAvailable;
42 | - (BOOL)initializeCapture;
43 | - (BOOL)captureIsInitialized;
44 |
45 | - (BOOL)startRendering;
46 | - (BOOL)stopRendering;
47 | - (BOOL)isRendering;
48 | - (BOOL)startCapture;
49 | - (BOOL)stopCapture;
50 | - (BOOL)isCapturing;
51 |
52 | - (uint16_t)estimatedRenderDelay;
53 | - (uint16_t)estimatedCaptureDelay;
54 |
55 | //desired Audio Route can be bluetooth and headset.
56 | //bluetooth has higher priority of all, next headset, next speaker
57 | - (BOOL)configureAudioSessionWithDesiredAudioRoute:(NSString*)desiredAudioRoute;
58 | - (BOOL)detectCurrentRoute;
59 |
60 | - (BOOL)setPlayOutRenderCallback:(AudioUnit)unit;
61 |
62 | @end
63 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/OTDefaultAudioDeviceWithVolumeControl.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTDefaultAudioDevice+Volume.h
3 | // External-Audio-Device
4 | //
5 | // Created by Sridhar on 08/03/16.
6 | // Copyright © 2016 TokBox Inc. All rights reserved.
7 | //
8 |
9 | #import "OTDefaultAudioDevice.h"
10 |
11 | @interface OTDefaultAudioDeviceWithVolumeControl : OTDefaultAudioDevice
12 |
13 | // value range - 0 (min) and 1 (max)
14 | -(void)setPlayoutVolume:(float)value;
15 | @end
16 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // External-Audio-Device
4 | //
5 | // Copyright (c) 2014 TokBox Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/External-Audio-Device/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // External-Audio-Device
4 | //
5 | // Created by Steve McFarlin on 7/7/14.
6 | // Copyright (c) 2014 TokBox Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Custom-Audio-Driver/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Custom-Audio-Driver' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Custom-Video-Driver.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Custom-Video-Driver.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Custom-Video-Driver.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Custom-Video-Driver.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Lets-Build-OTPublisher
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Base.lproj/Main_iPhone.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Custom-Video-Driver-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "size" : "29x29",
21 | "scale" : "1x"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "size" : "29x29",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "ipad",
30 | "size" : "40x40",
31 | "scale" : "1x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "40x40",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "76x76",
41 | "scale" : "1x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "76x76",
46 | "scale" : "2x"
47 | }
48 | ],
49 | "info" : {
50 | "version" : 1,
51 | "author" : "xcode"
52 | }
53 | }
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | },
18 | {
19 | "orientation" : "portrait",
20 | "idiom" : "ipad",
21 | "extent" : "full-screen",
22 | "minimum-system-version" : "7.0",
23 | "scale" : "1x"
24 | },
25 | {
26 | "orientation" : "landscape",
27 | "idiom" : "ipad",
28 | "extent" : "full-screen",
29 | "minimum-system-version" : "7.0",
30 | "scale" : "1x"
31 | },
32 | {
33 | "orientation" : "portrait",
34 | "idiom" : "ipad",
35 | "extent" : "full-screen",
36 | "minimum-system-version" : "7.0",
37 | "scale" : "2x"
38 | },
39 | {
40 | "orientation" : "landscape",
41 | "idiom" : "ipad",
42 | "extent" : "full-screen",
43 | "minimum-system-version" : "7.0",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Multi-Cam-Capturer/TBCaptureMultiCamFactory.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTAVMultiCamSession.h
3 | // Custom-Video-Driver
4 | //
5 | // Created by Sridhar Bollam on 12/17/19.
6 | // Copyright © 2019 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "TBExampleMultiCamCapture.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | @interface TBCaptureMultiCamFactory : NSObject
16 |
17 |
18 | @property(nonatomic, strong) AVCaptureMultiCamSession *avCaptureMultiCamSession;
19 | @property(nonatomic, strong) dispatch_queue_t capturer_queue;
20 |
21 | + (id)sharedInstance;
22 | - (TBExampleMultiCamCapture *)createCapturerForCameraPosition:(AVCaptureDevicePosition)camPosition;
23 | - (void)checkSystemCost;
24 | @end
25 |
26 | NS_ASSUME_NONNULL_END
27 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Multi-Cam-Capturer/TBExampleMultiCamCapture.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBExampleMultiCamCapture.h
3 | // Custom-Video-Driver
4 | //
5 | // Created by Sridhar Bollam on 12/17/19.
6 | // Copyright © 2019 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #ifndef TBExampleMultiCamCapture_h
10 | #define TBExampleMultiCamCapture_h
11 |
12 | #import
13 | #import
14 | #import
15 |
16 | @protocol OTVideoCapture;
17 |
18 | @interface TBExampleMultiCamCapture : NSObject
19 |
20 | {
21 |
22 | }
23 |
24 | -(id)initWithCameraPosition:(AVCaptureDevicePosition)camPosition
25 | andAVMultiCamSession:(AVCaptureMultiCamSession *)multiCamSession
26 | useQueue:(dispatch_queue_t)capture_queue;
27 | - (void) setTorchMode:(AVCaptureTorchMode) torchMode;
28 |
29 | @property (nonatomic, weak) AVCaptureSession *captureSession;
30 | @property (nonatomic, retain) AVCaptureVideoDataOutput *videoOutput;
31 | @property (nonatomic, retain) AVCaptureDeviceInput *videoInput;
32 |
33 | @property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
34 |
35 | @end
36 |
37 | #endif /* TBExampleMultiCamCapture_h */
38 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/Single-Cam-Capturer/TBExampleVideoCapture.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBExampleVideoCapture.h
3 | // OpenTok iOS SDK
4 | //
5 | // Copyright (c) 2013 Tokbox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 | #import
10 | #import
11 |
12 | @protocol OTVideoCapture;
13 |
14 | @protocol TBFrameCapturerMetadataDelegate
15 | - (void)finishPreparingFrame:(OTVideoFrame *)videoFrame;
16 | @end
17 |
18 | @interface TBExampleVideoCapture : NSObject
19 | { }
20 |
21 | @property (nonatomic, retain) AVCaptureSession *captureSession;
22 | @property (nonatomic, retain) AVCaptureVideoDataOutput *videoOutput;
23 | @property (nonatomic, retain) AVCaptureDeviceInput *videoInput;
24 |
25 | @property (nonatomic, assign) NSString* captureSessionPreset;
26 | @property (readonly) NSArray* availableCaptureSessionPresets;
27 |
28 | @property (nonatomic, assign) double activeFrameRate;
29 | - (BOOL)isAvailableActiveFrameRate:(double)frameRate;
30 |
31 | @property (nonatomic, assign) AVCaptureDevicePosition cameraPosition;
32 | @property (readonly) NSArray* availableCameraPositions;
33 | - (BOOL)toggleCameraPosition;
34 |
35 | @property (nonatomic, retain) id delegate;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/TBExampleVideoRender.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBExampleVideoRender.h
3 | //
4 | // Copyright (c) 2014 Tokbox, Inc. All rights reserved.
5 | //
6 |
7 | #import
8 | #import
9 | #import
10 |
11 | @protocol TBRendererDelegate;
12 |
13 | @interface TBExampleVideoRender : UIView
14 |
15 | @property (nonatomic, assign) BOOL mirroring;
16 | @property (nonatomic, assign) BOOL renderingEnabled;
17 | @property (nonatomic, assign) id delegate;
18 |
19 | /*
20 | * Clears the render buffer to a black frame
21 | */
22 | - (void)clearRenderBuffer;
23 |
24 | @end
25 |
26 | /**
27 | * Used to notify the owner of this renderer that frames are being received.
28 | * For our example, we'll use this to wire a notification to the subscriber's
29 | * delegate that video has arrived.
30 | */
31 | @protocol TBRendererDelegate
32 |
33 | - (void)renderer:(TBExampleVideoRender*)renderer
34 | didReceiveFrame:(OTVideoFrame*)frame;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Lets-Build-OTPublisher
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Lets-Build-OTPublisher/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Lets-Build-OTPublisher
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Custom-Video-Driver/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Custom-Video-Driver' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Lets-Build-OTPublisher
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // Lets-Build-OTPublisher
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import "AppDelegate.h"
9 |
10 | @implementation AppDelegate
11 |
12 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
13 | {
14 | return YES;
15 | }
16 |
17 | - (void)applicationWillResignActive:(UIApplication *)application
18 | {
19 |
20 | }
21 |
22 | - (void)applicationDidEnterBackground:(UIApplication *)application
23 | {
24 | }
25 |
26 | - (void)applicationWillEnterForeground:(UIApplication *)application
27 | {
28 | }
29 |
30 | - (void)applicationDidBecomeActive:(UIApplication *)application
31 | {
32 | }
33 |
34 | - (void)applicationWillTerminate:(UIApplication *)application
35 | {
36 | }
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/FrameMetadata.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | },
18 | {
19 | "orientation" : "portrait",
20 | "idiom" : "ipad",
21 | "extent" : "full-screen",
22 | "minimum-system-version" : "7.0",
23 | "scale" : "1x"
24 | },
25 | {
26 | "orientation" : "landscape",
27 | "idiom" : "ipad",
28 | "extent" : "full-screen",
29 | "minimum-system-version" : "7.0",
30 | "scale" : "1x"
31 | },
32 | {
33 | "orientation" : "portrait",
34 | "idiom" : "ipad",
35 | "extent" : "full-screen",
36 | "minimum-system-version" : "7.0",
37 | "scale" : "2x"
38 | },
39 | {
40 | "orientation" : "landscape",
41 | "idiom" : "ipad",
42 | "extent" : "full-screen",
43 | "minimum-system-version" : "7.0",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Lets-Build-OTPublisher
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/FrameMetadata/FrameMetadata/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Lets-Build-OTPublisher
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/FrameMetadata/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'FrameMetadata' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013-2015 TokBox, Inc.
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Live-Photo-Capture
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/Base.lproj/Main_iPhone.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "size" : "29x29",
21 | "scale" : "1x"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "size" : "29x29",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "ipad",
30 | "size" : "40x40",
31 | "scale" : "1x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "40x40",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "76x76",
41 | "scale" : "1x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "76x76",
46 | "scale" : "2x"
47 | }
48 | ],
49 | "info" : {
50 | "version" : 1,
51 | "author" : "xcode"
52 | }
53 | }
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/Live-Photo-Capture-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/TBExamplePhotoVideoCapture.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBExampleVideoCapture+PhotoCapture.h
3 | // Live-Photo-Capture
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import "TBExampleVideoCapture.h"
10 |
11 | @interface TBExamplePhotoVideoCapture : TBExampleVideoCapture
12 |
13 | @property (readonly) BOOL isTakingPhoto;
14 | - (void)takePhotoWithCompletionHandler:(void (^)(UIImage* photo))block;
15 |
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Live-Photo-Capture
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Live-Photo-Capture/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Live-Photo-Capture
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Live-Photo-Capture/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Live-Photo-Capture' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Media-Transformers/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Video Transformers Changelog
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | ## 2.25.2
6 |
7 | ### Added
8 |
9 | - Support pre-built transformers in the Vonage Media Processor library or create your own custom video transformer to apply to published video.
10 |
11 | ### Known issues
12 |
13 | - When using Vonage's Background Blur, the ML model is not being automatically added to the main bundle. It is required to be added manually:
14 | - Select the target for which you want to add the file. Go to the "Build Phases" tab.
15 | - Expand the "Copy Bundle Resources" section.
16 | - Click the "+" button to add a new file. A file picker dialog will appear. Choose ./Pods/VonageClientSDKVideo/OpenTok.xcframework/ios-arm64/OpenTok.framework/selfie_segmentation.tflite
17 |
18 | ### Fixed
19 |
20 | - NA
21 |
22 | ### Enhancements
23 |
24 | - NA
25 |
26 | ### Changed
27 |
28 | - NA
29 |
30 | ### Deprecated
31 |
32 | - NA
33 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Hello-World
4 | //
5 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers/Vonage_Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Media-Transformers/Media-Transformers/Vonage_Logo.png
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Media-Transformers/Media-Transformers/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Hello-World
4 | //
5 | // Created by Charley Robinson on 12/16/13.
6 | // Copyright (c) 2013 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Media-Transformers/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Media-Transformers' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | pod 'VonageClientSDKVideoTransformers', OpenTokSDKVersion
9 | end
10 |
--------------------------------------------------------------------------------
/OpenTokSDKVersion.rb:
--------------------------------------------------------------------------------
1 | OpenTokSDKVersion = '2.30.1'
2 | MinIosSdkVersion = '15.0'
3 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Overlay-Graphics
4 | //
5 | // Copyright (c) 2014 Tokbox. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/Base.lproj/Main_iPad.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/Base.lproj/Main_iPhone.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/Headset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/Headset.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/Headset@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/Headset@2x.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "size" : "29x29",
21 | "scale" : "1x"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "size" : "29x29",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "ipad",
30 | "size" : "40x40",
31 | "scale" : "1x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "40x40",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "76x76",
41 | "scale" : "1x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "76x76",
46 | "scale" : "2x"
47 | }
48 | ],
49 | "info" : {
50 | "version" : 1,
51 | "author" : "xcode"
52 | }
53 | }
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | },
18 | {
19 | "orientation" : "portrait",
20 | "idiom" : "ipad",
21 | "extent" : "full-screen",
22 | "minimum-system-version" : "7.0",
23 | "scale" : "1x"
24 | },
25 | {
26 | "orientation" : "landscape",
27 | "idiom" : "ipad",
28 | "extent" : "full-screen",
29 | "minimum-system-version" : "7.0",
30 | "scale" : "1x"
31 | },
32 | {
33 | "orientation" : "portrait",
34 | "idiom" : "ipad",
35 | "extent" : "full-screen",
36 | "minimum-system-version" : "7.0",
37 | "scale" : "2x"
38 | },
39 | {
40 | "orientation" : "landscape",
41 | "idiom" : "ipad",
42 | "extent" : "full-screen",
43 | "minimum-system-version" : "7.0",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/Overlay-Graphics-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/TBAudioLevelMeter.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBAudioLevelMeter.h
3 | // TestAudioMeter
4 | //
5 | // Created by Sridhar on 02/06/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface TBAudioLevelMeter : UIView
12 | {
13 |
14 | }
15 | @property(assign, nonatomic) CGFloat level;
16 | @property(assign, nonatomic) UIView* toucesPassToView;
17 | @end
18 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/TBExampleOverlayButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTOverlayButton.h
3 | // Overlay-Graphics
4 | //
5 | // Copyright (c) 2014 Tokbox, Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @protocol TBExampleOverlayButtonDelegate;
11 |
12 | typedef enum {
13 | TBExampleOverlayButtonTypeMuteButton,
14 | TBExampleOverlayButtonTypeVolumeButton,
15 | TBExampleOverlayButtonTypeSwitchCameraButton
16 | } TBExampleOverlayButtonType;
17 |
18 | @interface TBExampleOverlayButton : UIButton
19 |
20 | @property (nonatomic) TBExampleOverlayButtonType type;
21 | @property (nonatomic, assign) id delegate;
22 |
23 | - (id)initWithFrame:(CGRect)frame
24 | overlayButtonType:(TBExampleOverlayButtonType)buttonType
25 | delegate:(id)delegate;
26 |
27 | @end
28 |
29 | @protocol TBExampleOverlayButtonDelegate
30 |
31 | - (void)overlayButtonWasSelected:(TBExampleOverlayButton*)button;
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/TBExampleUnderlayView.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTUnderlayView.h
3 | // Overlay-Graphics
4 | //
5 | // Copyright (c) 2014 TokBox. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | typedef enum {
11 | TBExampleUnderlayViewTypeSubscriber = 0,
12 | TBExampleUnderlayViewTypePublisher = 1
13 | } TBExampleUnderlayViewType;
14 |
15 | @interface TBExampleUnderlayView : UIView
16 |
17 | @property (nonatomic) BOOL audioActive;
18 |
19 | - (id)initWithFrame:(CGRect)frame;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/TBExampleVideoCapture.h:
--------------------------------------------------------------------------------
1 | ../../2.Lets-Build-OTPublisher/Lets-Build-OTPublisher/TBExampleVideoCapture.h
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/TBExampleVideoCapture.m:
--------------------------------------------------------------------------------
1 | ../../2.Lets-Build-OTPublisher/Lets-Build-OTPublisher/TBExampleVideoCapture.m
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/UIBezierPath+Additions.h:
--------------------------------------------------------------------------------
1 | /*
2 | Erica Sadun, http://ericasadun.com
3 | iPhone Developer's Cookbook, 6.x Edition
4 | BSD License, Use at your own risk
5 | */
6 |
7 | #import
8 |
9 | #define POINT(_INDEX_) \
10 | [(NSValue *)[points objectAtIndex:_INDEX_] CGPointValue]
11 | #define VALUE(_INDEX_) \
12 | [NSValue valueWithCGPoint:points[_INDEX_]]
13 |
14 | @interface UIBezierPath (Additions)
15 |
16 | - (UIBezierPath *) fitInRect: (CGRect) destRect;
17 | - (NSArray *) points;
18 | + (UIBezierPath *) pathWithPoints: (NSArray *) points;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Overlay-Graphics
4 | //
5 | // Created by Sridhar on 28/02/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface ViewController : UIViewController
13 | {
14 |
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/archiving_off-Small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/archiving_off-Small.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/archiving_off-Small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/archiving_off-Small@2x.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/archiving_on-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/archiving_on-10.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/archiving_on-10@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/archiving_on-10@2x.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/archiving_pulse-Small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/archiving_pulse-Small.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/archiving_pulse-Small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/archiving_pulse-Small@2x.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/audioOnlyActive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/audioOnlyActive.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/audioOnlyInactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/audioOnlyInactive.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/highCongestion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/highCongestion.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/libyuv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3 | *
4 | * Use of this source code is governed by a BSD-style license
5 | * that can be found in the LICENSE file in the root of the source
6 | * tree. An additional intellectual property rights grant can be found
7 | * in the file PATENTS. All contributing project authors may
8 | * be found in the AUTHORS file in the root of the source tree.
9 | */
10 |
11 | #ifndef INCLUDE_LIBYUV_H_ // NOLINT
12 | #define INCLUDE_LIBYUV_H_
13 |
14 | #include "libyuv/basic_types.h"
15 | #include "libyuv/compare.h"
16 | #include "libyuv/convert.h"
17 | #include "libyuv/convert_argb.h"
18 | #include "libyuv/convert_from.h"
19 | #include "libyuv/convert_from_argb.h"
20 | #include "libyuv/cpu_id.h"
21 | #include "libyuv/format_conversion.h"
22 | #include "libyuv/mjpeg_decoder.h"
23 | #include "libyuv/planar_functions.h"
24 | #include "libyuv/rotate.h"
25 | #include "libyuv/rotate_argb.h"
26 | #include "libyuv/row.h"
27 | #include "libyuv/scale.h"
28 | #include "libyuv/scale_argb.h"
29 | #include "libyuv/version.h"
30 | #include "libyuv/video_common.h"
31 |
32 | #endif // INCLUDE_LIBYUV_H_ NOLINT
33 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/libyuv/rotate_argb.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 | *
4 | * Use of this source code is governed by a BSD-style license
5 | * that can be found in the LICENSE file in the root of the source
6 | * tree. An additional intellectual property rights grant can be found
7 | * in the file PATENTS. All contributing project authors may
8 | * be found in the AUTHORS file in the root of the source tree.
9 | */
10 |
11 | #ifndef INCLUDE_LIBYUV_ROTATE_ARGB_H_ // NOLINT
12 | #define INCLUDE_LIBYUV_ROTATE_ARGB_H_
13 |
14 | #include "libyuv/basic_types.h"
15 | #include "libyuv/rotate.h" // For RotationMode.
16 |
17 | #ifdef __cplusplus
18 | namespace libyuv {
19 | extern "C" {
20 | #endif
21 |
22 | // Rotate ARGB frame
23 | LIBYUV_API
24 | int ARGBRotate(const uint8* src_argb, int src_stride_argb,
25 | uint8* dst_argb, int dst_stride_argb,
26 | int src_width, int src_height, enum RotationMode mode);
27 |
28 | #ifdef __cplusplus
29 | } // extern "C"
30 | } // namespace libyuv
31 | #endif
32 |
33 | #endif // INCLUDE_LIBYUV_ROTATE_ARGB_H_ NOLINT
34 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/libyuv/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 | *
4 | * Use of this source code is governed by a BSD-style license
5 | * that can be found in the LICENSE file in the root of the source
6 | * tree. An additional intellectual property rights grant can be found
7 | * in the file PATENTS. All contributing project authors may
8 | * be found in the AUTHORS file in the root of the source tree.
9 | */
10 |
11 | #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
12 | #define INCLUDE_LIBYUV_VERSION_H_
13 |
14 | #define LIBYUV_VERSION 905
15 |
16 | #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
17 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Overlay-Graphics
4 | //
5 | // Created by Sridhar on 28/02/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/midCongestion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/midCongestion.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/mutePublisher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/mutePublisher.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/muteSubscriber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/muteSubscriber.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/silhouette.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/silhouette.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/swapCamera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/swapCamera.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/unmutePublisher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/unmutePublisher.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Overlay-Graphics/unmuteSubscriber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Overlay-Graphics/Overlay-Graphics/unmuteSubscriber.png
--------------------------------------------------------------------------------
/Overlay-Graphics/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Overlay-Graphics' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Ringtones/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Ringtones' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Ringtones/README.md:
--------------------------------------------------------------------------------
1 | Play a Ringtone
2 | ==========================
3 |
4 | This project extends on the work done in Project 3 (Custom-Audio-Driver) by
5 | extending the sample audio driver with an AVAudioPlayer controller, which will
6 | play a short ringtone while waiting for the subscriber to connect to the client
7 | device.
8 |
9 | The main controller is mostly the same as the previous, with an immediate call
10 | to set the audio device driver. In this sample, we add an additional call to our
11 | new audio device driver to begin playing back an audio file that will act as
12 | a ringtone:
13 |
14 | ```
15 | NSString* path = [[NSBundle mainBundle] pathForResource:@"bananaphone"
16 | ofType:@"mp3"];
17 | NSURL* url = [NSURL URLWithString:path];
18 | [_myAudioDevice playRingtoneFromURL:url];
19 | ```
20 |
21 | Additionally, once the device has connected to a subscriber stream, a call is
22 | issued to stop playback of the ringtone:
23 |
24 | ```
25 | - (void)subscriberDidConnectToStream:(OTSubscriberKit*)subscriber
26 | {
27 | NSLog(@"subscriberDidConnectToStream (%@)",
28 | subscriber.stream.connection.connectionId);
29 |
30 | // Stop ringtone from playing, as the subscriber will connect shortly
31 | [_myAudioDevice stopRingtone];
32 | // ...
33 | }
34 | ```
35 |
36 | *Important:* To use this application, follow the instructions in the
37 | [Quick Start](../README.md#quick-start) section of the main README file
38 | for this repository.
39 |
40 | Application Notes
41 | -----------------
42 |
43 | * There is no timeout for the audio player. If the asset plays to completion or
44 | there is an error, all calls from OTAudioBus will be passed to the audio
45 | driver, and playback/capture for OpenTok will proceed as normal.
46 |
47 | * An additional tap gesture recognizer has been added to this sample to show
48 | and test that this sequence will work through multiple calls. The
49 | `resetSession` method is added to implement this workflow.
50 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Ringtones
4 | //
5 | // Created by Charley Robinson on 2/16/16.
6 | // Copyright © 2016 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | }
88 | ],
89 | "info" : {
90 | "version" : 1,
91 | "author" : "xcode"
92 | }
93 | }
--------------------------------------------------------------------------------
/Ringtones/Ringtones/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UIBackgroundModes
26 |
27 | audio
28 |
29 | UILaunchStoryboardName
30 | LaunchScreen
31 | UIMainStoryboardFile
32 | Main
33 | UIRequiredDeviceCapabilities
34 |
35 | armv7
36 |
37 | UISupportedInterfaceOrientations
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationLandscapeLeft
41 | UIInterfaceOrientationLandscapeRight
42 |
43 | UISupportedInterfaceOrientations~ipad
44 |
45 | UIInterfaceOrientationPortrait
46 | UIInterfaceOrientationPortraitUpsideDown
47 | UIInterfaceOrientationLandscapeLeft
48 | UIInterfaceOrientationLandscapeRight
49 |
50 | NSCameraUsageDescription
51 | Opentok needs access to the camera to stream your video
52 | NSMicrophoneUsageDescription
53 | Opentok needs access to the microphone to stream your audio
54 |
55 |
56 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones/OTAudioDeviceRingtone.h:
--------------------------------------------------------------------------------
1 | //
2 | // OTAudioPlayer.h
3 | // Ringtones
4 | //
5 | // Created by Charley Robinson on 2/16/16.
6 | // Copyright © 2016 TokBox, Inc. All rights reserved.
7 | //
8 |
9 |
10 | #import "OTDefaultAudioDevice.h"
11 |
12 | @interface OTAudioDeviceRingtone : OTDefaultAudioDevice
13 |
14 | @property (nonatomic) BOOL vibratesWithRingtone;
15 |
16 | - (instancetype) init __attribute__((unavailable("init not available, useinitWithRingtone:")));
17 | - (instancetype)initWithRingtone:(NSURL *)url;
18 |
19 | // Immediately stops the ringtone and allows OpenTok audio calls to flow
20 | - (void)stopRingtone;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Ringtones
4 | //
5 | // Created by Charley Robinson on 2/16/16.
6 | // Copyright © 2016 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/Ringtones/Ringtones/bananaphone.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Ringtones/Ringtones/bananaphone.mp3
--------------------------------------------------------------------------------
/Ringtones/Ringtones/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Ringtones
4 | //
5 | // Created by Charley Robinson on 2/16/16.
6 | // Copyright © 2016 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Screen-Sharing/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Screen-Sharing' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Screen-Sharing
4 | //
5 | // Copyright (c) 2014 TokBox Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface AppDelegate : UIResponder
11 |
12 | @property (strong, nonatomic) UIWindow *window;
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | },
18 | {
19 | "orientation" : "portrait",
20 | "idiom" : "ipad",
21 | "extent" : "full-screen",
22 | "minimum-system-version" : "7.0",
23 | "scale" : "1x"
24 | },
25 | {
26 | "orientation" : "landscape",
27 | "idiom" : "ipad",
28 | "extent" : "full-screen",
29 | "minimum-system-version" : "7.0",
30 | "scale" : "1x"
31 | },
32 | {
33 | "orientation" : "portrait",
34 | "idiom" : "ipad",
35 | "extent" : "full-screen",
36 | "minimum-system-version" : "7.0",
37 | "scale" : "2x"
38 | },
39 | {
40 | "orientation" : "landscape",
41 | "idiom" : "ipad",
42 | "extent" : "full-screen",
43 | "minimum-system-version" : "7.0",
44 | "scale" : "2x"
45 | }
46 | ],
47 | "info" : {
48 | "version" : 1,
49 | "author" : "xcode"
50 | }
51 | }
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/Screen-Sharing-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/TBScreenCapture.h:
--------------------------------------------------------------------------------
1 | //
2 | // TBScreenCapture.h
3 | // Screen-Sharing
4 | //
5 | // Copyright (c) 2020 TokBox Inc. All rights reserved.
6 | //
7 |
8 | #import
9 | #import
10 |
11 | @protocol OTVideoCapture;
12 |
13 | /**
14 | * Periodically sends video frames to an OpenTok Publisher by rendering the
15 | * CALayer for a UIView.
16 | */
17 | @interface TBScreenCapture : NSObject
18 |
19 | @property(readonly) UIView* view;
20 |
21 | /**
22 | * Initializes a video capturer that will grab rendered stills of the view.
23 | */
24 | - (instancetype)initWithView:(UIView*)view;
25 |
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Screen-Sharing
4 | //
5 | // Copyright (c) 2014 TokBox Inc. All rights reserved.
6 | //
7 |
8 | #import
9 |
10 | @interface ViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/logo_opentok_registered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Screen-Sharing/Screen-Sharing/logo_opentok_registered.png
--------------------------------------------------------------------------------
/Screen-Sharing/Screen-Sharing/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Screen-Sharing
4 | //
5 | // Created by Steve McFarlin on 8/27/14.
6 | // Copyright (c) 2014 TokBox Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Signaling/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Signaling' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Signaling/README.md:
--------------------------------------------------------------------------------
1 | Signaling sample app
2 | ====================
3 |
4 | This sample app shows how how to implement text chat using the OpenTok signaling API.
5 | For a full description, see the [Text Chat tutorial at the OpenTok developer
6 | center](https://tokbox.com/developer/tutorials/ios/text-chat/).
7 |
--------------------------------------------------------------------------------
/Signaling/Signaling.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Signaling/Signaling.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Signaling/Signaling.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Signaling/Signaling.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Signaling/Signaling/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Getting Started
4 | //
5 | // Created by Swartz on 11/19/14.
6 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/Signaling/Signaling/Config.h:
--------------------------------------------------------------------------------
1 | //
2 | // Config.h
3 | // Getting Started
4 | //
5 | // Created by Swartz on 12/1/14.
6 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #ifndef Getting_Started_Config_h
10 | #define Getting_Started_Config_h
11 |
12 | /*
13 | Set SAMPLE_SERVER_BASE_URL to the base URL of the web server that implements
14 | the OpenTok PHP Getting Started Sample code (see the main README file.) This
15 | web service handles some OpenTok-related API calls, related to obtaining
16 | session IDs and tokens, and for working with archives.
17 | */
18 |
19 | #define SAMPLE_SERVER_BASE_URL @"https://YOUR-SERVER-URL"
20 |
21 | #endif
22 |
--------------------------------------------------------------------------------
/Signaling/Signaling/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "29x29",
36 | "scale" : "1x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "29x29",
41 | "scale" : "2x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "40x40",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "40x40",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "76x76",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "76x76",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/Signaling/Signaling/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | Learn OpenTok
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSRequiresIPhoneOS
26 |
27 | NSCameraUsageDescription
28 | This app accesses the camera for video communications.
29 | NSMicrophoneUsageDescription
30 | This app accesses the microphone for audio communications.
31 | UIBackgroundModes
32 |
33 | audio
34 |
35 | UILaunchStoryboardName
36 | LaunchScreen
37 | UIMainStoryboardFile
38 | Main
39 | UIRequiredDeviceCapabilities
40 |
41 | armv7
42 |
43 | UISupportedInterfaceOrientations
44 |
45 | UIInterfaceOrientationPortrait
46 |
47 | UISupportedInterfaceOrientations~ipad
48 |
49 | UIInterfaceOrientationPortrait
50 | UIInterfaceOrientationPortraitUpsideDown
51 | UIInterfaceOrientationLandscapeLeft
52 | UIInterfaceOrientationLandscapeRight
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/Signaling/Signaling/Subscriber-Speaker-35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/Subscriber-Speaker-35.png
--------------------------------------------------------------------------------
/Signaling/Signaling/Subscriber-Speaker-35@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/Subscriber-Speaker-35@2x.png
--------------------------------------------------------------------------------
/Signaling/Signaling/Subscriber-Speaker-Mute-35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/Subscriber-Speaker-Mute-35.png
--------------------------------------------------------------------------------
/Signaling/Signaling/Subscriber-Speaker-Mute-35@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/Subscriber-Speaker-Mute-35@2x.png
--------------------------------------------------------------------------------
/Signaling/Signaling/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Getting Started
4 | //
5 | // Created by Jeff Swartz on 11/19/14.
6 | // Copyright (c) 2014 TokBox, Inc. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "Config.h"
12 |
13 | @interface ViewController : UIViewController
14 |
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Signaling/Signaling/camera-switch_black-33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/camera-switch_black-33.png
--------------------------------------------------------------------------------
/Signaling/Signaling/camera_switch-33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/camera_switch-33.png
--------------------------------------------------------------------------------
/Signaling/Signaling/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // LearningOpenTok
4 | //
5 | // Created by Swartz on 4/17/15.
6 | // Copyright (c) 2015 TokBox. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Signaling/Signaling/mic-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/mic-24.png
--------------------------------------------------------------------------------
/Signaling/Signaling/mic_muted-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Signaling/Signaling/mic_muted-24.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Multi-Party-Call
4 | //
5 | // Created by Sridhar on 07/04/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_strong-23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_strong-23.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_strong-23@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_strong-23@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_weak-23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_weak-23.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_weak-23@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Bandwidth_meter_weak-23@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "size" : "29x29",
21 | "scale" : "1x"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "size" : "29x29",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "ipad",
30 | "size" : "40x40",
31 | "scale" : "1x"
32 | },
33 | {
34 | "idiom" : "ipad",
35 | "size" : "40x40",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "ipad",
40 | "size" : "76x76",
41 | "scale" : "1x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "76x76",
46 | "scale" : "2x"
47 | }
48 | ],
49 | "info" : {
50 | "version" : 1,
51 | "author" : "xcode"
52 | }
53 | }
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Simple-Multiparty-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-35.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-35@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-35@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-Mute-35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-Mute-35.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-Mute-35@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/Subscriber-Speaker-Mute-35@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/TB Bug-30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/TB Bug-30.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/TB Bug-30@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/TB Bug-30@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Multi-Party-Call
4 | //
5 | // Created by Sridhar on 07/04/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 |
13 | @interface ViewController : UIViewController {
14 |
15 | }
16 | @property (strong, nonatomic) IBOutlet UIScrollView *videoContainerView;
17 | @property (strong, nonatomic) IBOutlet UIView *bottomOverlayView;
18 | @property (strong, nonatomic) IBOutlet UIView *topOverlayView;
19 | @property (retain, nonatomic) IBOutlet UIButton *cameraToggleButton;
20 | @property (retain, nonatomic) IBOutlet UIButton *audioPubUnpubButton;
21 | @property (retain, nonatomic) IBOutlet UILabel *userNameLabel;
22 | @property (retain, nonatomic) NSTimer *overlayTimer;
23 | @property (retain, nonatomic) IBOutlet UIButton *audioSubUnsubButton;
24 | @property (retain, nonatomic) IBOutlet UIButton *endCallButton;
25 | @property (retain, nonatomic) IBOutlet UIView *micSeparator;
26 | @property (retain, nonatomic) IBOutlet UIView *cameraSeparator;
27 | @property (retain, nonatomic) IBOutlet UIView *archiveOverlay;
28 | @property (retain, nonatomic) IBOutlet UILabel *archiveStatusLbl;
29 | @property (retain, nonatomic) IBOutlet UIImageView *archiveStatusImgView;
30 | @property (retain, nonatomic) IBOutlet UIImageView *rightArrowImgView;
31 | @property (retain, nonatomic) IBOutlet UIImageView *leftArrowImgView;
32 | @property (retain, nonatomic) IBOutlet UIImageView *archiveStatusImgView2;
33 |
34 |
35 | - (IBAction)toggleAudioSubscribe:(id)sender;
36 | - (IBAction)toggleCameraPosition:(id)sender;
37 | - (IBAction)toggleAudioPublish:(id)sender;
38 | - (IBAction)endCallAction:(UIButton *)button;
39 | @end
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/archiving-off-15@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/archiving-off-15@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/archiving_on-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/archiving_on-5.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/archiving_on-5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/archiving_on-5@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/archiving_pulse-15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/archiving_pulse-15.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/camera-switch_black-33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/camera-switch_black-33.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/camera-switch_black-33@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/camera-switch_black-33@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/camera_switch-33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/camera_switch-33.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/camera_switch-33@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/camera_switch-33@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_disabled-28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_disabled-28.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_disabled-28@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_disabled-28@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_enabled-28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_enabled-28.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_enabled-28@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowLeft_enabled-28@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_disabled-28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_disabled-28.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_disabled-28@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_disabled-28@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_enabled-28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_enabled-28.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_enabled-28@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/icon_arrowRight_enabled-28@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/libyuv.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2011 The LibYuv Project Authors. All rights reserved.
3 | *
4 | * Use of this source code is governed by a BSD-style license
5 | * that can be found in the LICENSE file in the root of the source
6 | * tree. An additional intellectual property rights grant can be found
7 | * in the file PATENTS. All contributing project authors may
8 | * be found in the AUTHORS file in the root of the source tree.
9 | */
10 |
11 | #ifndef INCLUDE_LIBYUV_H_ // NOLINT
12 | #define INCLUDE_LIBYUV_H_
13 |
14 | #include "libyuv/basic_types.h"
15 | #include "libyuv/compare.h"
16 | #include "libyuv/convert.h"
17 | #include "libyuv/convert_argb.h"
18 | #include "libyuv/convert_from.h"
19 | #include "libyuv/convert_from_argb.h"
20 | #include "libyuv/cpu_id.h"
21 | #include "libyuv/format_conversion.h"
22 | #include "libyuv/mjpeg_decoder.h"
23 | #include "libyuv/planar_functions.h"
24 | #include "libyuv/rotate.h"
25 | #include "libyuv/rotate_argb.h"
26 | #include "libyuv/row.h"
27 | #include "libyuv/scale.h"
28 | #include "libyuv/scale_argb.h"
29 | #include "libyuv/version.h"
30 | #include "libyuv/video_common.h"
31 |
32 | #endif // INCLUDE_LIBYUV_H_ NOLINT
33 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/libyuv/rotate_argb.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 | *
4 | * Use of this source code is governed by a BSD-style license
5 | * that can be found in the LICENSE file in the root of the source
6 | * tree. An additional intellectual property rights grant can be found
7 | * in the file PATENTS. All contributing project authors may
8 | * be found in the AUTHORS file in the root of the source tree.
9 | */
10 |
11 | #ifndef INCLUDE_LIBYUV_ROTATE_ARGB_H_ // NOLINT
12 | #define INCLUDE_LIBYUV_ROTATE_ARGB_H_
13 |
14 | #include "libyuv/basic_types.h"
15 | #include "libyuv/rotate.h" // For RotationMode.
16 |
17 | #ifdef __cplusplus
18 | namespace libyuv {
19 | extern "C" {
20 | #endif
21 |
22 | // Rotate ARGB frame
23 | LIBYUV_API
24 | int ARGBRotate(const uint8* src_argb, int src_stride_argb,
25 | uint8* dst_argb, int dst_stride_argb,
26 | int src_width, int src_height, enum RotationMode mode);
27 |
28 | #ifdef __cplusplus
29 | } // extern "C"
30 | } // namespace libyuv
31 | #endif
32 |
33 | #endif // INCLUDE_LIBYUV_ROTATE_ARGB_H_ NOLINT
34 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/libyuv/version.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 | *
4 | * Use of this source code is governed by a BSD-style license
5 | * that can be found in the LICENSE file in the root of the source
6 | * tree. An additional intellectual property rights grant can be found
7 | * in the file PATENTS. All contributing project authors may
8 | * be found in the AUTHORS file in the root of the source tree.
9 | */
10 |
11 | #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
12 | #define INCLUDE_LIBYUV_VERSION_H_
13 |
14 | #define LIBYUV_VERSION 905
15 |
16 | #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
17 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Multi-Party-Call
4 | //
5 | // Created by Sridhar on 07/04/14.
6 | // Copyright (c) 2014 Tokbox. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "AppDelegate.h"
12 |
13 | int main(int argc, char * argv[])
14 | {
15 | @autoreleasepool {
16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/mic-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/mic-24.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/mic-24@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/mic-24@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/mic_muted-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/mic_muted-24.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/mic_muted-24@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/mic_muted-24@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/mic_receiving_data-35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/mic_receiving_data-35.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Multi-Party-Call/mic_receiving_data-35@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opentok/opentok-ios-sdk-samples/257276c91e2879893b0aaee394e1d3f4e9cc81bf/Simple-Multiparty/Multi-Party-Call/mic_receiving_data-35@2x.png
--------------------------------------------------------------------------------
/Simple-Multiparty/Podfile:
--------------------------------------------------------------------------------
1 | require_relative '../OpenTokSDKVersion'
2 |
3 | platform :ios, MinIosSdkVersion
4 | use_frameworks!
5 |
6 | target 'Simple-Multiparty' do
7 | pod 'OTXCFramework', OpenTokSDKVersion
8 | end
9 |
--------------------------------------------------------------------------------
/Simple-Multiparty/README.md:
--------------------------------------------------------------------------------
1 | Simple Multi Party
2 | ==================================
3 |
4 | This project shows how to use the OpenTok iOS SDK to develop a multi-party call
5 | (one publisher, N subscribers with only one subscriber video enabled at a time).
6 | By the end of a code review, you will learn how to use the OpenTok iOS SDK to
7 | add a multi-party call to an app.
8 |
9 | This example also shows how to display an indicator when the session is being
10 | archived. (See the [Archiving overview][1] documentation.)
11 |
12 | *Important:* To use this application, follow the instructions in the
13 | [Quick Start](../README.md#quick-start) section of the main README file
14 | for this repository.
15 |
16 | Application Notes
17 | -----------------
18 |
19 | * This sample shows a publisher bar (bottom), subscriber bar (top), and an
20 | archiving overlay.
21 |
22 | * The publisher bar has buttons to toggle the publisher's camera and to
23 | mute and unmute the publisher's audio.
24 |
25 | * The subscriber bar has a button to enable and disable the subscriber's
26 | audio.
27 |
28 | * Swipe right/left to navigate to the next/previous subscriber in the session.
29 |
30 | * Use one of the [OpenTok server SDKs][2] or the [OpenTok REST API][3] to start
31 | archiving the session. Note that you must use a session with the
32 | [media mode][4] set to "routed" in order to use archiving. When archiving
33 | begins the `[OTSessionDelegate session:archiveStartedWithId:name:]` message
34 | is sent.
35 |
36 | [1]: https://tokbox.com/opentok/tutorials/archiving/
37 | [2]: https://tokbox.com/opentok/libraries/server/
38 | [3]: https://tokbox.com/opentok/api/
39 | [4]: https://tokbox.com/opentok/tutorials/create-session/#media-mode
40 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Simple-Multiparty.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Simple-Multiparty.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Simple-Multiparty.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Simple-Multiparty/Simple-Multiparty.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------