├── LSCamera ├── Build │ └── LSCamera.framework │ │ ├── Headers │ │ ├── LSCamera │ │ ├── Resources │ │ └── Versions │ │ ├── A │ │ ├── Headers │ │ │ ├── AKCameraDefines.h │ │ │ ├── AKCameraMessageHUD.h │ │ │ ├── AKCameraNavigationBar.h │ │ │ ├── AKCameraStyle.h │ │ │ ├── AKCameraSwitch.h │ │ │ ├── AKCameraTool.h │ │ │ ├── AKCameraUtils.h │ │ │ ├── AKRecordProgressView.h │ │ │ ├── AKVideo.h │ │ │ └── UIImage+AKExtension.h │ │ ├── LSCamera │ │ └── Resources │ │ │ ├── Info.plist │ │ │ └── en.lproj │ │ │ └── InfoPlist.strings │ │ └── Current ├── LSCamera.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── LSCamera.xccheckout │ │ └── xcuserdata │ │ │ └── lihejun.xcuserdatad │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ └── WorkspaceSettings.xcsettings │ └── xcuserdata │ │ └── lihejun.xcuserdatad │ │ └── xcschemes │ │ ├── LSCamera.xcscheme │ │ └── xcschememanagement.plist ├── LSCamera │ ├── AKCamera.bundle │ │ ├── back-button.png │ │ ├── back-button@2x.png │ │ ├── bgm_cover_0.png │ │ ├── bgm_cover_0@2x.png │ │ ├── blur-on@2x.png │ │ ├── blur@2x.png │ │ ├── camera@2x.png │ │ ├── camera_on_h@2x.png │ │ ├── capture_focus@2x.png │ │ ├── cover_action_bk.png │ │ ├── cover_action_bk@2x.png │ │ ├── cover_btn_h.png │ │ ├── cover_btn_h@2x.png │ │ ├── cover_btn_n.png │ │ ├── cover_btn_n@2x.png │ │ ├── cover_slider_big.png │ │ ├── cover_slider_big@2x.png │ │ ├── cover_tile_selected@2x.png │ │ ├── delete_back@2x.png │ │ ├── delete_back_h@2x.png │ │ ├── detail_bk.png │ │ ├── detail_bk@2x.png │ │ ├── detail_bk_big.png │ │ ├── detail_bk_big@2x.png │ │ ├── error-black.png │ │ ├── error-black@2x.png │ │ ├── error-white.png │ │ ├── error-white@2x.png │ │ ├── filter_bk@2x.png │ │ ├── filter_mask@2x.png │ │ ├── flashlight.png │ │ ├── flashlight@2x.png │ │ ├── flashlight_on_h@2x.png │ │ ├── magic@2x.png │ │ ├── magic_h@2x.png │ │ ├── music@2x.png │ │ ├── music_btn_h.png │ │ ├── music_btn_h@2x.png │ │ ├── music_btn_n.png │ │ ├── music_btn_n@2x.png │ │ ├── nav_bg@2x.png │ │ ├── original@2x.png │ │ ├── play_icon_38@2x.png │ │ ├── segmented_radio_left_h@2x.png │ │ ├── segmented_radio_left_n@2x.png │ │ ├── segmented_radio_right_h@2x.png │ │ ├── segmented_radio_right_n@2x.png │ │ ├── success-black.png │ │ ├── success-black@2x.png │ │ ├── success-white.png │ │ ├── success-white@2x.png │ │ ├── tao_delete_back@2x.png │ │ ├── tao_play_btn@2x.png │ │ ├── tao_record_h@2x.png │ │ ├── tao_record_n@2x.png │ │ └── tao_switch_camera@2x.png │ ├── LSCamera-Info.plist │ ├── LSCamera-Prefix.pch │ ├── Record │ │ ├── AKCameraBGM.h │ │ ├── AKCameraBGM.m │ │ ├── AKCameraBGMCell.h │ │ ├── AKCameraBGMCell.m │ │ ├── AKCameraCache.h │ │ ├── AKCameraCache.m │ │ ├── AKCameraCaputure.h │ │ ├── AKCameraCaputure.m │ │ ├── AKCameraChannelViewController.h │ │ ├── AKCameraChannelViewController.m │ │ ├── AKCameraDefines.h │ │ ├── AKCameraDownloader.h │ │ ├── AKCameraDownloader.m │ │ ├── AKCameraEditViewController.h │ │ ├── AKCameraEditViewController.m │ │ ├── AKCameraExporter.h │ │ ├── AKCameraExporter.m │ │ ├── AKCameraFocusView.h │ │ ├── AKCameraFocusView.m │ │ ├── AKCameraLocationViewController.h │ │ ├── AKCameraLocationViewController.m │ │ ├── AKCameraMessageHUD.h │ │ ├── AKCameraMessageHUD.m │ │ ├── AKCameraNavigationBar.h │ │ ├── AKCameraNavigationBar.m │ │ ├── AKCameraNavigationController.h │ │ ├── AKCameraNavigationController.m │ │ ├── AKCameraPlayer.h │ │ ├── AKCameraPlayer.m │ │ ├── AKCameraProgressHUD.h │ │ ├── AKCameraProgressHUD.m │ │ ├── AKCameraRecordView.h │ │ ├── AKCameraRecordView.m │ │ ├── AKCameraRecordViewController.h │ │ ├── AKCameraRecordViewController.m │ │ ├── AKCameraSaveViewController.h │ │ ├── AKCameraSaveViewController.m │ │ ├── AKCameraSoundTrackView.h │ │ ├── AKCameraSoundTrackView.m │ │ ├── AKCameraStyle.h │ │ ├── AKCameraStyle.m │ │ ├── AKCameraSwitch.h │ │ ├── AKCameraSwitch.m │ │ ├── AKCameraTextView.h │ │ ├── AKCameraTextView.m │ │ ├── AKCameraThumbnailPicker.h │ │ ├── AKCameraThumbnailPicker.m │ │ ├── AKCameraTool.h │ │ ├── AKCameraTool.m │ │ ├── AKCameraUtils.h │ │ ├── AKCameraUtils.m │ │ ├── AKCameraVideoPreview.h │ │ ├── AKCameraVideoPreview.m │ │ ├── AKCameraViewController.h │ │ ├── AKCameraViewController.m │ │ ├── AKRecordProgressView.h │ │ ├── AKRecordProgressView.m │ │ ├── AKVideo.h │ │ ├── AKVideo.m │ │ ├── AVPlayer+TrackVolume.h │ │ ├── AVPlayer+TrackVolume.m │ │ ├── UIImage+AKExtension.h │ │ ├── UIImage+AKExtension.m │ │ ├── UIImage+AKResize.h │ │ ├── UIImage+AKResize.m │ │ ├── UIImageView+AKCameraWebImageView.h │ │ └── UIImageView+AKCameraWebImageView.m │ └── en.lproj │ │ └── InfoPlist.strings └── LSCameraTests │ ├── LSCameraTests-Info.plist │ ├── LSCameraTests.m │ └── en.lproj │ └── InfoPlist.strings ├── LSCameraDemo ├── .DS_Store ├── LSCameraDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ ├── hejun.lhj.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── lihejun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── hejun.lhj.xcuserdatad │ │ └── xcschemes │ │ │ ├── LSCameraDemo.xcscheme │ │ │ └── xcschememanagement.plist │ │ └── lihejun.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── LSCameraDemo.xcscheme │ │ └── xcschememanagement.plist ├── LSCameraDemo │ ├── .DS_Store │ ├── AKCamera.bundle │ │ ├── back-button.png │ │ ├── back-button@2x.png │ │ ├── bgm_cover_0.png │ │ ├── bgm_cover_0@2x.png │ │ ├── blur-on@2x.png │ │ ├── blur@2x.png │ │ ├── camera@2x.png │ │ ├── camera_on_h@2x.png │ │ ├── capture_focus@2x.png │ │ ├── cover_action_bk.png │ │ ├── cover_action_bk@2x.png │ │ ├── cover_btn_h.png │ │ ├── cover_btn_h@2x.png │ │ ├── cover_btn_n.png │ │ ├── cover_btn_n@2x.png │ │ ├── cover_slider_big.png │ │ ├── cover_slider_big@2x.png │ │ ├── cover_tile_selected@2x.png │ │ ├── delete_back@2x.png │ │ ├── delete_back_h@2x.png │ │ ├── detail_bk.png │ │ ├── detail_bk@2x.png │ │ ├── detail_bk_big.png │ │ ├── detail_bk_big@2x.png │ │ ├── error-black.png │ │ ├── error-black@2x.png │ │ ├── error-white.png │ │ ├── error-white@2x.png │ │ ├── filter_bk@2x.png │ │ ├── filter_mask@2x.png │ │ ├── flashlight.png │ │ ├── flashlight@2x.png │ │ ├── flashlight_on_h@2x.png │ │ ├── magic@2x.png │ │ ├── magic_h@2x.png │ │ ├── music@2x.png │ │ ├── music_btn_h.png │ │ ├── music_btn_h@2x.png │ │ ├── music_btn_n.png │ │ ├── music_btn_n@2x.png │ │ ├── nav_bg@2x.png │ │ ├── original@2x.png │ │ ├── play_icon_38@2x.png │ │ ├── segmented_radio_left_h@2x.png │ │ ├── segmented_radio_left_n@2x.png │ │ ├── segmented_radio_right_h@2x.png │ │ ├── segmented_radio_right_n@2x.png │ │ ├── success-black.png │ │ ├── success-black@2x.png │ │ ├── success-white.png │ │ ├── success-white@2x.png │ │ ├── tao_delete_back@2x.png │ │ ├── tao_play_btn@2x.png │ │ ├── tao_record_h@2x.png │ │ ├── tao_record_n@2x.png │ │ └── tao_switch_camera@2x.png │ ├── Base.lproj │ │ ├── Launch Screen.storyboard │ │ └── Main.storyboard │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── LSCamera.framework │ │ ├── Headers │ │ ├── LSCamera │ │ ├── Resources │ │ └── Versions │ │ │ ├── A │ │ │ ├── Headers │ │ │ │ ├── AKCameraDefines.h │ │ │ │ ├── AKCameraMessageHUD.h │ │ │ │ ├── AKCameraNavigationBar.h │ │ │ │ ├── AKCameraStyle.h │ │ │ │ ├── AKCameraSwitch.h │ │ │ │ ├── AKCameraTool.h │ │ │ │ ├── AKCameraUtils.h │ │ │ │ ├── AKRecordProgressView.h │ │ │ │ ├── AKVideo.h │ │ │ │ └── UIImage+AKExtension.h │ │ │ ├── LSCamera │ │ │ └── Resources │ │ │ │ ├── AKCamera.bundle │ │ │ │ ├── back-button.png │ │ │ │ ├── back-button@2x.png │ │ │ │ ├── bgm │ │ │ │ │ ├── DT.caf │ │ │ │ │ ├── Diary.caf │ │ │ │ │ ├── GQQ.caf │ │ │ │ │ ├── IBelieve.caf │ │ │ │ │ ├── KN.caf │ │ │ │ │ ├── LX.caf │ │ │ │ │ ├── Summer.caf │ │ │ │ │ ├── TheMass.caf │ │ │ │ │ ├── XXX.caf │ │ │ │ │ └── ZG.caf │ │ │ │ ├── bgm_cover_0.png │ │ │ │ ├── bgm_cover_0@2x.png │ │ │ │ ├── bgm_cover_1.png │ │ │ │ ├── bgm_cover_10.png │ │ │ │ ├── bgm_cover_10@2x.png │ │ │ │ ├── bgm_cover_1@2x.png │ │ │ │ ├── bgm_cover_2.png │ │ │ │ ├── bgm_cover_2@2x.png │ │ │ │ ├── bgm_cover_3.png │ │ │ │ ├── bgm_cover_3@2x.png │ │ │ │ ├── bgm_cover_4.png │ │ │ │ ├── bgm_cover_4@2x.png │ │ │ │ ├── bgm_cover_5.png │ │ │ │ ├── bgm_cover_5@2x.png │ │ │ │ ├── bgm_cover_6.png │ │ │ │ ├── bgm_cover_6@2x.png │ │ │ │ ├── bgm_cover_7.png │ │ │ │ ├── bgm_cover_7@2x.png │ │ │ │ ├── bgm_cover_8.png │ │ │ │ ├── bgm_cover_8@2x.png │ │ │ │ ├── bgm_cover_9.png │ │ │ │ ├── bgm_cover_9@2x.png │ │ │ │ ├── blur-on@2x.png │ │ │ │ ├── blur@2x.png │ │ │ │ ├── camera@2x.png │ │ │ │ ├── camera_on_h@2x.png │ │ │ │ ├── capture_focus@2x.png │ │ │ │ ├── cover_action_bk.png │ │ │ │ ├── cover_action_bk@2x.png │ │ │ │ ├── cover_btn_h.png │ │ │ │ ├── cover_btn_h@2x.png │ │ │ │ ├── cover_btn_n.png │ │ │ │ ├── cover_btn_n@2x.png │ │ │ │ ├── cover_slider_big.png │ │ │ │ ├── cover_slider_big@2x.png │ │ │ │ ├── cover_tile_selected@2x.png │ │ │ │ ├── delete_back@2x.png │ │ │ │ ├── delete_back_h@2x.png │ │ │ │ ├── detail_bk.png │ │ │ │ ├── detail_bk@2x.png │ │ │ │ ├── detail_bk_big.png │ │ │ │ ├── detail_bk_big@2x.png │ │ │ │ ├── error-black.png │ │ │ │ ├── error-black@2x.png │ │ │ │ ├── error-white.png │ │ │ │ ├── error-white@2x.png │ │ │ │ ├── filter_bk@2x.png │ │ │ │ ├── filter_mask@2x.png │ │ │ │ ├── flashlight.png │ │ │ │ ├── flashlight@2x.png │ │ │ │ ├── flashlight_on_h@2x.png │ │ │ │ ├── magic@2x.png │ │ │ │ ├── magic_h@2x.png │ │ │ │ ├── music@2x.png │ │ │ │ ├── music_btn_h.png │ │ │ │ ├── music_btn_h@2x.png │ │ │ │ ├── music_btn_n.png │ │ │ │ ├── music_btn_n@2x.png │ │ │ │ ├── nav_bg@2x.png │ │ │ │ ├── original@2x.png │ │ │ │ ├── play_icon_38@2x.png │ │ │ │ ├── success-black.png │ │ │ │ ├── success-black@2x.png │ │ │ │ ├── success-white.png │ │ │ │ ├── success-white@2x.png │ │ │ │ ├── tao_delete_back@2x.png │ │ │ │ ├── tao_play_btn@2x.png │ │ │ │ ├── tao_record_h@2x.png │ │ │ │ ├── tao_record_n@2x.png │ │ │ │ ├── tao_switch_camera@2x.png │ │ │ │ └── video_edit_leader_bk@2x.png │ │ │ │ ├── Info.plist │ │ │ │ ├── en.lproj │ │ │ │ └── InfoPlist.strings │ │ │ │ ├── tao_delete_back@2x.png │ │ │ │ ├── tao_record_h@2x.png │ │ │ │ ├── tao_record_n@2x.png │ │ │ │ └── tao_switch_camera@2x.png │ │ │ └── Current │ ├── LSCameraAppDelegate.h │ ├── LSCameraAppDelegate.m │ ├── LSCameraDemo-Info.plist │ ├── LSCameraDemo-Prefix.pch │ ├── LSCameraViewController.h │ ├── LSCameraViewController.m │ ├── Record │ │ ├── AKCameraBGM.h │ │ ├── AKCameraBGM.m │ │ ├── AKCameraBGMCell.h │ │ ├── AKCameraBGMCell.m │ │ ├── AKCameraCache.h │ │ ├── AKCameraCache.m │ │ ├── AKCameraCaputure.h │ │ ├── AKCameraCaputure.m │ │ ├── AKCameraChannelViewController.h │ │ ├── AKCameraChannelViewController.m │ │ ├── AKCameraDefines.h │ │ ├── AKCameraDownloader.h │ │ ├── AKCameraDownloader.m │ │ ├── AKCameraEditViewController.h │ │ ├── AKCameraEditViewController.m │ │ ├── AKCameraExporter.h │ │ ├── AKCameraExporter.m │ │ ├── AKCameraFocusView.h │ │ ├── AKCameraFocusView.m │ │ ├── AKCameraLocationViewController.h │ │ ├── AKCameraLocationViewController.m │ │ ├── AKCameraMessageHUD.h │ │ ├── AKCameraMessageHUD.m │ │ ├── AKCameraNavigationBar.h │ │ ├── AKCameraNavigationBar.m │ │ ├── AKCameraNavigationController.h │ │ ├── AKCameraNavigationController.m │ │ ├── AKCameraPlayer.h │ │ ├── AKCameraPlayer.m │ │ ├── AKCameraProgressHUD.h │ │ ├── AKCameraProgressHUD.m │ │ ├── AKCameraRecordView.h │ │ ├── AKCameraRecordView.m │ │ ├── AKCameraRecordViewController.h │ │ ├── AKCameraRecordViewController.m │ │ ├── AKCameraSaveViewController.h │ │ ├── AKCameraSaveViewController.m │ │ ├── AKCameraSoundTrackView.h │ │ ├── AKCameraSoundTrackView.m │ │ ├── AKCameraStyle.h │ │ ├── AKCameraStyle.m │ │ ├── AKCameraSwitch.h │ │ ├── AKCameraSwitch.m │ │ ├── AKCameraTextView.h │ │ ├── AKCameraTextView.m │ │ ├── AKCameraThumbnailPicker.h │ │ ├── AKCameraThumbnailPicker.m │ │ ├── AKCameraTool.h │ │ ├── AKCameraTool.m │ │ ├── AKCameraUtils.h │ │ ├── AKCameraUtils.m │ │ ├── AKCameraVideoPreview.h │ │ ├── AKCameraVideoPreview.m │ │ ├── AKCameraViewController.h │ │ ├── AKCameraViewController.m │ │ ├── AKRecordProgressView.h │ │ ├── AKRecordProgressView.m │ │ ├── AKVideo.h │ │ ├── AKVideo.m │ │ ├── AVPlayer+TrackVolume.h │ │ ├── AVPlayer+TrackVolume.m │ │ ├── UIImage+AKExtension.h │ │ ├── UIImage+AKExtension.m │ │ ├── UIImage+AKResize.h │ │ ├── UIImage+AKResize.m │ │ ├── UIImageView+AKCameraWebImageView.h │ │ └── UIImageView+AKCameraWebImageView.m │ ├── Resources │ │ ├── bgm │ │ │ ├── DT.caf │ │ │ ├── Diary.caf │ │ │ ├── GQQ.caf │ │ │ ├── IBelieve.caf │ │ │ ├── KN.caf │ │ │ ├── LX.caf │ │ │ ├── Summer.caf │ │ │ ├── TheMass.caf │ │ │ ├── XXX.caf │ │ │ └── ZG.caf │ │ ├── bgm_cover_0.png │ │ ├── bgm_cover_0@2x.png │ │ ├── bgm_cover_1.png │ │ ├── bgm_cover_10.png │ │ ├── bgm_cover_10@2x.png │ │ ├── bgm_cover_1@2x.png │ │ ├── bgm_cover_2.png │ │ ├── bgm_cover_2@2x.png │ │ ├── bgm_cover_3.png │ │ ├── bgm_cover_3@2x.png │ │ ├── bgm_cover_4.png │ │ ├── bgm_cover_4@2x.png │ │ ├── bgm_cover_5.png │ │ ├── bgm_cover_5@2x.png │ │ ├── bgm_cover_6.png │ │ ├── bgm_cover_6@2x.png │ │ ├── bgm_cover_7.png │ │ ├── bgm_cover_7@2x.png │ │ ├── bgm_cover_8.png │ │ ├── bgm_cover_8@2x.png │ │ ├── bgm_cover_9.png │ │ └── bgm_cover_9@2x.png │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m └── LSCameraDemoTests │ ├── LSCameraDemoTests-Info.plist │ ├── LSCameraDemoTests.m │ └── en.lproj │ └── InfoPlist.strings └── README /LSCamera/Build/LSCamera.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/LSCamera: -------------------------------------------------------------------------------- 1 | Versions/Current/LSCamera -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Headers/AKCameraMessageHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraMessageHUD.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #define sheme_white 11 | //#define sheme_black 12 | //------------------------------------------------------------------------------------------------------------------------------------------------- 13 | 14 | //------------------------------------------------------------------------------------------------------------------------------------------------- 15 | #define HUD_STATUS_FONT [UIFont boldSystemFontOfSize:16] 16 | //------------------------------------------------------------------------------------------------------------------------------------------------- 17 | #ifdef sheme_white 18 | #define HUD_STATUS_COLOR [UIColor whiteColor] 19 | #define HUD_SPINNER_COLOR [UIColor whiteColor] 20 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.8] 21 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-white.png"] 22 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-white.png"] 23 | #endif 24 | //------------------------------------------------------------------------------------------------------------------------------------------------- 25 | #ifdef sheme_black 26 | #define HUD_STATUS_COLOR [UIColor blackColor] 27 | #define HUD_SPINNER_COLOR [UIColor blackColor] 28 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.2] 29 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-black.png"] 30 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-black.png"] 31 | #endif 32 | @interface AKCameraMessageHUD : UIView 33 | 34 | + (AKCameraMessageHUD *)shared; 35 | 36 | + (void)dismiss; 37 | + (void)show:(NSString *)status; 38 | + (void)showSuccess:(NSString *)status; 39 | + (void)showError:(NSString *)status; 40 | 41 | @property (atomic, strong) UIWindow *window; 42 | @property (atomic, strong) UIView *hud; 43 | @property (atomic, strong) UIActivityIndicatorView *spinner; 44 | @property (atomic, strong) UIImageView *image; 45 | @property (atomic, strong) UILabel *label; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Headers/AKCameraNavigationBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationBar.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraNavigationBar : UIView 12 | @property (nonatomic, weak) UIViewController *m_viewCtrlParent; 13 | @property (nonatomic, readonly) BOOL m_bIsCurrStateMiniMode; 14 | @property (nonatomic, readonly) UIButton *m_btnBack; 15 | @property (nonatomic, readonly) UILabel *m_labelTitle; 16 | @property (nonatomic, readonly) UIImageView *m_imgViewBg; 17 | @property (nonatomic, readonly) UIImageView *m_bottomLine; 18 | @property (nonatomic, readonly) UIButton *m_btnLeft; 19 | @property (nonatomic, readonly) UIButton *m_btnRight; 20 | @property (nonatomic, readonly) BOOL m_bIsBlur; 21 | 22 | + (CGRect)rightBtnFrame; 23 | + (CGSize)barBtnSize; 24 | + (CGSize)barSize; 25 | + (CGRect)titleViewFrame; 26 | 27 | // 创建一个导航条按钮:使用默认的按钮图片。 28 | + (UIButton *)createNormalNaviBarBtnByTitle:(NSString *)strTitle target:(id)target action:(SEL)action; 29 | 30 | // 创建一个导航条按钮:自定义按钮图片。 31 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight target:(id)target action:(SEL)action; 32 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight imgSelected:(UIImage *)imgSelected target:(id)target action:(SEL)action; 33 | 34 | // 用自定义的按钮和标题替换默认内容 35 | - (void)setLeftBtn:(UIButton *)btn; 36 | - (void)setRightBtn:(UIButton *)btn; 37 | - (void)setTitle:(NSString *)strTitle; 38 | - (void)setLeftBtnTitle:(NSString *)title; 39 | 40 | // 触发返回 41 | - (void)goBack; 42 | 43 | // 隐藏底边线 44 | - (void)hideBottomLine; 45 | 46 | // 在导航条上覆盖一层自定义视图。比如:输入搜索关键字时,覆盖一个输入框在上面。 47 | - (void)showCoverView:(UIView *)view; 48 | - (void)showCoverView:(UIView *)view animation:(BOOL)bIsAnimation; 49 | - (void)showCoverViewOnTitleView:(UIView *)view; 50 | - (void)hideCoverView:(UIView *)view; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Headers/AKCameraSwitch.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSwitch.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraSwitch : UIControl 12 | @property(nonatomic, retain) UIColor *tintColor; 13 | @property(nonatomic, retain) UIColor *onTintColor; 14 | @property(nonatomic, assign) UIColor *offTintColor; 15 | @property(nonatomic, assign) UIColor *thumbTintColor; 16 | 17 | @property(nonatomic,getter=isOn) BOOL on; 18 | 19 | - (id)initWithFrame:(CGRect)frame; 20 | 21 | - (void)setOn:(BOOL)on animated:(BOOL)animated; 22 | 23 | - (void)setOnWithoutEvent:(BOOL)on animated:(BOOL)animated; 24 | @end 25 | -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Headers/AKCameraTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraTool.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | #import "AKCameraStyle.h" 12 | #import "AKCameraDefines.h" 13 | #import "AKCameraUtils.h" 14 | 15 | #define kTintColor [UIColor colorWithRed:24/255.0f green:186/255.0f blue:250/255.0f alpha:1] 16 | #define kRecordFileType AVFileTypeQuickTimeMovie//AVFileTypeMPEG4// 17 | #define kMovieFileExtension @"mov" 18 | #define kThumbnailSize CGSizeMake(138, 138) 19 | #define kThumbnailExtend @"thumbnail_" 20 | #define kDescriptionMaxLength 16 21 | #define kMaxKeyFrames 20 22 | 23 | @protocol AKCameraEditDelegate 24 | 25 | - (void)akCameraEditWillFinish; 26 | 27 | @end 28 | 29 | @class AKCameraTool; 30 | @protocol AKCameraToolDelegate 31 | 32 | @optional 33 | // Location provider, format:{city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 34 | - (void)akCameraNeedLocation; // 异步获取地理位置 35 | 36 | - (NSArray *)akCameraNeedNearbyLocations:(NSDictionary *)currentLocation; // 同步获取附近地理位置 37 | - (NSArray *)akCameraNeedChannels; // [[id,name], [id,name]] // 同步获取频道信息 38 | - (NSArray *)akCameraNeedBgms; // [[name, pic, path],[name, pic, path]] // 同步获取BGM信息 39 | 40 | - (void)akCameraWillFinished:(AKVideo *)video asDraft:(BOOL)asDraft; 41 | 42 | @end 43 | @interface AKCameraTool : NSObject 44 | // Parameters 45 | @property (nonatomic, assign)int maxSeconds; 46 | // Cache 47 | @property (nonatomic, strong)AKVideo *video; 48 | // Delegate 49 | @property (nonatomic, weak) id delegate; 50 | 51 | + (AKCameraTool *)shareInstance; 52 | 53 | // Start record 54 | - (void)startRecordFromController:(UIViewController *)controller; 55 | 56 | // Edit 57 | - (void)editVideo:(AKVideo *)video fromController:(UIViewController*)controller; 58 | 59 | // Cache 60 | - (void)syncDataToCache; 61 | 62 | // Notify 63 | - (void)delegateRequestLocationFinish:(NSDictionary *)location; 64 | 65 | @end 66 | 67 | #pragma mark - Private 68 | @protocol AKCameraInternalDelegate 69 | 70 | - (void)akCameraSaveWillCancel:(BOOL)saveAsDraft; // notify to clear 71 | - (void)akCameraSaveWillFinish; // notify to finish 72 | 73 | @end 74 | -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Headers/AKRecordProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKRecordProgressView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKRecordProgressView : UIView 12 | @property (nonatomic, strong) UIColor* progressTintColor; 13 | @property (nonatomic, strong) UIColor* borderTintColor; 14 | @property (nonatomic) CGFloat progress; 15 | @property (nonatomic) CGFloat radius; 16 | @property (nonatomic) CGFloat border; 17 | 18 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated; 19 | @end 20 | -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Headers/AKVideo.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKVideo.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKVideo : NSObject 12 | @property (nonatomic, strong)NSString *videoFileName; // 视频文件 13 | @property (nonatomic, strong)NSString *coverFileName; // 封面文件 14 | @property (nonatomic, strong)NSDate *createTime; // 创建时间 15 | @property (nonatomic, strong)NSNumber *duration; // 持续时间 16 | @property (nonatomic, strong)NSNumber *videoFileSize; // 视频文件大小 17 | @property (nonatomic, strong)NSDictionary *location; // 地址: {province:xxx,city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 18 | @property (nonatomic, strong)NSNumber *coverSelectedIndex; // 选中的封面索引 19 | @property (nonatomic, strong)NSNumber *access; // 访问权限: 0 - public; 1 - private 20 | @property (nonatomic, strong)NSNumber *anonymity; // 匿名: 0 - no; 1 - yes 21 | @property (nonatomic, strong)NSString *videoDescription; // 视频描述 22 | @property (nonatomic, strong)NSArray *channel; // 频道:[id,name] 23 | 24 | // 中断拍摄可继续 25 | @property (nonatomic, strong)NSNumber *maxSeconds; // 最长拍摄时长 26 | @property (nonatomic, strong)NSMutableArray *movieFilePaths; // 分段拍摄的各个分段文件路径,用于恢复上次中断的拍摄 27 | @property (nonatomic, strong)NSMutableArray *keyFrames; // 拍摄过程提取的关键帧 28 | @property (nonatomic, strong)UIImage *defaultCover; 29 | 30 | - (void)encodeWithCoder:(NSCoder *)aCoder; 31 | - (id)initWithCoder:(NSCoder *)aDecoder; 32 | 33 | - (NSURL *)getVideoPath; 34 | - (NSURL *)getCoverPath; 35 | - (void)setVideoFilePath:(NSURL *)url; 36 | - (void)setCoverFilePath:(NSURL *)url; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Headers/UIImage+AKExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKExtension.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (AKExtension) 12 | 13 | /*! 14 | * @brief Resized image by given size. 15 | * @param size The size to resize. 16 | * @return An UIImage object containing a resized image from the image. 17 | * @details This method depends on CoreGraphics. 18 | */ 19 | - (UIImage *)imageByResizingToSize:(CGSize)size; 20 | 21 | /*! 22 | * @brief Color filled image with given color. 23 | * @param color The color to fill 24 | * @details This method depends on CoreGraphics. 25 | */ 26 | - (UIImage *)imageByFilledWithColor:(UIColor *)color; 27 | 28 | /*! 29 | * @brief Colored image by given size. 30 | * @param color The color to fill. 31 | * @param size The image size to create. 32 | */ 33 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size; 34 | 35 | /*! 36 | * @brief Clear colored image. 37 | */ 38 | + (UIImage *)clearImage; 39 | 40 | /*! 41 | * @brief Image drawn with bazier path. 42 | * @param path The bezier path to draw. 43 | * @param color The stroke color for bezier path. 44 | * @param backgroundColor The fill color for bezier path. 45 | */ 46 | + (UIImage *)imageWithBezierPath:(UIBezierPath *)path color:(UIColor *)color backgroundColor:(UIColor *)backgroundColor; 47 | 48 | /* 49 | * 圆角图片 50 | */ 51 | + (UIImage *)roundedImageWithSize:(CGSize)size color:(UIColor *)color radius:(CGFloat)radius; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/LSCamera: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/Build/LSCamera.framework/Versions/A/LSCamera -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/Build/LSCamera.framework/Versions/A/Resources/Info.plist -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/A/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/Build/LSCamera.framework/Versions/A/Resources/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /LSCamera/Build/LSCamera.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /LSCamera/LSCamera.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LSCamera/LSCamera.xcodeproj/project.xcworkspace/xcshareddata/LSCamera.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 7F87FFCB-8052-4AA3-8C60-928DDA0C8F5C 9 | IDESourceControlProjectName 10 | LSCamera 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | C5C1669E-1AE6-4EE3-B363-A53BEA00B38A 14 | ssh://gitlab.alibaba-inc.com/hejun.lhj/lscamera.git 15 | 16 | IDESourceControlProjectPath 17 | LSCamera/LSCamera.xcodeproj/project.xcworkspace 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | C5C1669E-1AE6-4EE3-B363-A53BEA00B38A 21 | ../../.. 22 | 23 | IDESourceControlProjectURL 24 | ssh://gitlab.alibaba-inc.com/hejun.lhj/lscamera.git 25 | IDESourceControlProjectVersion 26 | 110 27 | IDESourceControlProjectWCCIdentifier 28 | C5C1669E-1AE6-4EE3-B363-A53BEA00B38A 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | C5C1669E-1AE6-4EE3-B363-A53BEA00B38A 36 | IDESourceControlWCCName 37 | lscamera 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /LSCamera/LSCamera.xcodeproj/project.xcworkspace/xcuserdata/lihejun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera.xcodeproj/project.xcworkspace/xcuserdata/lihejun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LSCamera/LSCamera.xcodeproj/project.xcworkspace/xcuserdata/lihejun.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /LSCamera/LSCamera.xcodeproj/xcuserdata/lihejun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LSCamera.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EFD3A78F18ED630000E03CAF 16 | 17 | primary 18 | 19 | 20 | EFD3A7A018ED630000E03CAF 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/back-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/back-button.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/back-button@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/back-button@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/bgm_cover_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/bgm_cover_0.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/bgm_cover_0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/bgm_cover_0@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/blur-on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/blur-on@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/blur@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/blur@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/camera@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/camera_on_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/camera_on_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/capture_focus@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/capture_focus@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_action_bk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_action_bk.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_action_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_action_bk@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_btn_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_btn_h.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_btn_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_btn_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_btn_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_btn_n.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_btn_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_btn_n@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_slider_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_slider_big.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_slider_big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_slider_big@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/cover_tile_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/cover_tile_selected@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/delete_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/delete_back@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/delete_back_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/delete_back_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/detail_bk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/detail_bk.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/detail_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/detail_bk@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/detail_bk_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/detail_bk_big.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/detail_bk_big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/detail_bk_big@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/error-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/error-black.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/error-black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/error-black@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/error-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/error-white.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/error-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/error-white@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/filter_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/filter_bk@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/filter_mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/filter_mask@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/flashlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/flashlight.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/flashlight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/flashlight@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/flashlight_on_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/flashlight_on_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/magic@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/magic@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/magic_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/magic_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/music@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/music@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/music_btn_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/music_btn_h.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/music_btn_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/music_btn_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/music_btn_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/music_btn_n.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/music_btn_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/music_btn_n@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/nav_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/nav_bg@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/original@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/original@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/play_icon_38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/play_icon_38@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/segmented_radio_left_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/segmented_radio_left_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/segmented_radio_left_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/segmented_radio_left_n@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/segmented_radio_right_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/segmented_radio_right_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/segmented_radio_right_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/segmented_radio_right_n@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/success-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/success-black.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/success-black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/success-black@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/success-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/success-white.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/success-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/success-white@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/tao_delete_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/tao_delete_back@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/tao_play_btn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/tao_play_btn@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/tao_record_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/tao_record_h@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/tao_record_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/tao_record_n@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/AKCamera.bundle/tao_switch_camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCamera/LSCamera/AKCamera.bundle/tao_switch_camera@2x.png -------------------------------------------------------------------------------- /LSCamera/LSCamera/LSCamera-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | com.lyne.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSPrincipalClass 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/LSCamera-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 | #ifdef __OBJC__ 8 | #import 9 | #import 10 | #endif 11 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraBGM.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraBGM.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraBGM : NSObject 12 | @property (nonatomic, strong)NSMutableArray *items; 13 | 14 | + (AKCameraBGM *)shareInstance; 15 | 16 | - (void)syncDataToCache; 17 | 18 | @end 19 | 20 | @interface BGMItem : NSObject 21 | 22 | @property (nonatomic, strong)NSString *name; 23 | @property (nonatomic, strong)NSString *path; 24 | @property (nonatomic, strong)NSString *cover; 25 | @property (nonatomic, strong)NSString *url; 26 | 27 | + (BGMItem *)itemWithName:(NSString *)name path:(NSString *)path cover:(NSString *)cover url:(NSString *)url; 28 | 29 | - (void)encodeWithCoder:(NSCoder *)aCoder; 30 | - (id)initWithCoder:(NSCoder *)aDecoder; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraBGM.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraBGM.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraBGM.h" 10 | #import "AKCameraCache.h" 11 | 12 | #define kBgmKey @"bgms" 13 | 14 | @implementation AKCameraBGM 15 | 16 | + (AKCameraBGM *)shareInstance { 17 | static AKCameraBGM *s_instance; 18 | static dispatch_once_t onceToken; 19 | dispatch_once(&onceToken, ^{ 20 | s_instance = [[self alloc] init]; 21 | }); 22 | return s_instance; 23 | } 24 | 25 | - (void)syncDataToCache { 26 | NSData *data = [NSKeyedArchiver archivedDataWithRootObject:_items]; 27 | [[AKCameraCache shareInstance] storeData:data forKey:kBgmKey]; 28 | } 29 | 30 | #pragma mark - Getter 31 | - (NSMutableArray *)items { 32 | if (!_items) { 33 | _items = [NSMutableArray array]; 34 | } 35 | return _items; 36 | } 37 | 38 | @end 39 | 40 | @implementation BGMItem 41 | 42 | + (BGMItem *)itemWithName:(NSString *)name path:(NSString *)path cover:(NSString *)cover url:(NSString *)url { 43 | BGMItem *item = [[BGMItem alloc] init]; 44 | item.name = name; 45 | item.path = path; 46 | item.cover = cover; 47 | item.url = url; 48 | return item; 49 | } 50 | 51 | -(void)encodeWithCoder:(NSCoder *)aCoder{ 52 | //encode properties/values 53 | [aCoder encodeObject:_name forKey:@"name"]; 54 | [aCoder encodeObject:_path forKey:@"path"]; 55 | [aCoder encodeObject:_cover forKey:@"cover"]; 56 | [aCoder encodeObject:_url forKey:@"url"]; 57 | } 58 | 59 | -(id)initWithCoder:(NSCoder *)aDecoder{ 60 | if((self = [super init])) { 61 | //decode properties/values 62 | _name = [aDecoder decodeObjectForKey:@"name"]; 63 | _path =[aDecoder decodeObjectForKey:@"path"]; 64 | _cover =[aDecoder decodeObjectForKey:@"cover"]; 65 | _url =[aDecoder decodeObjectForKey:@"url"]; 66 | } 67 | 68 | return self; 69 | } 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraBGMCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraBGMCell.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraBGM.h" 11 | 12 | @class AKCameraBGMCell; 13 | @protocol AKCameraBGMCellDelegate 14 | 15 | - (void)akCameraBGMCellTapped:(AKCameraBGMCell *)cell; 16 | 17 | @end 18 | 19 | @interface AKCameraBGMCell : UIView 20 | @property (nonatomic, weak)BGMItem *item; 21 | @property (nonatomic, assign)BOOL selected; 22 | @property (nonatomic, weak)id delegate; 23 | @end 24 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraCache.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraCache.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraCache : NSObject 12 | { 13 | NSString *diskCachePath; 14 | NSOperationQueue *cacheInQueue, *cacheOutQueue; 15 | NSMutableDictionary *memCache; 16 | } 17 | 18 | + (AKCameraCache *)shareInstance; 19 | 20 | - (void)storeData:(NSData *)aData forKey:(NSString *)key; 21 | - (NSData *)dataFromKey:(NSString *)key; 22 | - (void)removeDataForKey:(NSString *)key; 23 | - (void)clearDisk; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraChannelViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraChannelViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraViewController.h" 11 | 12 | @class AKCameraChannelViewController; 13 | @protocol AKChannelSelectDelegate 14 | 15 | -(void)viewController:(AKCameraChannelViewController *)viewController didSelectChannel:(NSArray *)channel; 16 | 17 | @end 18 | 19 | @interface AKCameraChannelViewController : AKCameraViewController 20 | @property (nonatomic, weak)NSArray *activeChannel; 21 | @property (nonatomic, weak)id delegate; 22 | 23 | + (AKCameraChannelViewController *)shareInstance; 24 | 25 | @end 26 | 27 | @interface AKChannelCell : UITableViewCell 28 | @property (nonatomic, weak)NSArray *channel; 29 | @end 30 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraDownloader.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraDownloader.h 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class AKCameraDownloader; 12 | @protocol AKCameraDownloaderDelegate 13 | 14 | - (void)akCameraDownloader:(AKCameraDownloader *)downloader didFinish:(NSData *)data; 15 | @optional 16 | - (void)akCameraDownloaderDidFailed:(AKCameraDownloader *)downloader; 17 | - (void)akCameraDownloader:(AKCameraDownloader *)downloader progress:(float)progress; 18 | 19 | @end 20 | 21 | @interface AKCameraDownloader : NSObject 22 | @property (nonatomic, weak)id delegate; 23 | 24 | - (void)download:(NSString *)urlString delegate:(id)delegate; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraEditViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraEditViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraTool.h" 11 | #import "AKCameraExporter.h" 12 | #import "AKCameraViewController.h" 13 | 14 | @interface AKCameraEditViewController : AKCameraViewController 15 | 16 | @property (copy, nonatomic) NSArray *images; 17 | @property (weak, nonatomic) AKVideo *video; 18 | @property (assign,nonatomic)BOOL fromLocal; // 来自本地视频 19 | @property (nonatomic, weak) id delegate; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraFocusView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraFocusView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraFocusView : UIView 12 | 13 | - (void)startAnimation; 14 | - (void)stopAnimation; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraFocusView.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraFocusView.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraFocusView.h" 10 | #import "UIImage+AKExtension.h" 11 | #import "AKCameraStyle.h" 12 | 13 | @interface AKCameraFocusView() 14 | { 15 | UIImageView *_focusRingView; 16 | } 17 | 18 | @end 19 | 20 | @implementation AKCameraFocusView 21 | 22 | #pragma mark - init 23 | 24 | - (id)initWithFrame:(CGRect)frame 25 | { 26 | self = [super initWithFrame:frame]; 27 | if (self) { 28 | self.backgroundColor = [UIColor clearColor]; 29 | self.contentMode = UIViewContentModeScaleToFill; 30 | UIImage *img = [[UIImage imageNamed:@"AKCamera.bundle/capture_focus"] imageByFilledWithColor:[AKCameraStyle cameraLineColor]]; 31 | _focusRingView = [[UIImageView alloc] initWithImage:img]; 32 | [self addSubview:_focusRingView]; 33 | 34 | self.frame = _focusRingView.frame; 35 | } 36 | return self; 37 | } 38 | 39 | - (void)dealloc 40 | { 41 | [self.layer removeAllAnimations]; 42 | } 43 | 44 | #pragma mark - 45 | 46 | - (void)startAnimation 47 | { 48 | [self.layer removeAllAnimations]; 49 | 50 | self.transform = CGAffineTransformMakeScale(1.4f, 1.4f); 51 | self.alpha = 0; 52 | 53 | [UIView animateWithDuration:0.4f delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ 54 | 55 | self.transform = CGAffineTransformIdentity; 56 | self.alpha = 1; 57 | 58 | } completion:^(BOOL finished) { 59 | [UIView animateWithDuration:0.4f delay:0 options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat animations:^{ 60 | 61 | self.transform = CGAffineTransformMakeScale(1.1f, 1.1f); 62 | self.alpha = 1; 63 | 64 | } completion:^(BOOL finished1) { 65 | }]; 66 | }]; 67 | } 68 | 69 | - (void)stopAnimation 70 | { 71 | [self.layer removeAllAnimations]; 72 | 73 | [UIView animateWithDuration:0.2f delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 74 | 75 | self.transform = CGAffineTransformMakeScale(0.001f, 0.001f); 76 | self.alpha = 0; 77 | 78 | } completion:^(BOOL finished) { 79 | 80 | [self removeFromSuperview]; 81 | 82 | }]; 83 | } 84 | 85 | @end 86 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraLocationViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraLocationViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraViewController.h" 11 | 12 | @class AKCameraLocationViewController; 13 | @protocol AKCameraLocationDelegate 14 | 15 | @optional 16 | - (void)viewController:(AKCameraLocationViewController *)controller didSelectLocation:(NSDictionary *)location; 17 | 18 | @end 19 | 20 | @interface AKCameraLocationViewController : AKCameraViewController 21 | @property (weak, nonatomic)id delegate; 22 | @property (strong, nonatomic)NSDictionary *location; 23 | @property (strong, nonatomic)NSArray *locations; 24 | 25 | + (AKCameraLocationViewController *)shareInstance; 26 | 27 | @end 28 | 29 | @interface AKLocationCell : UITableViewCell 30 | @property (nonatomic, weak)NSDictionary *location; 31 | @end 32 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraMessageHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraMessageHUD.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #define sheme_white 11 | //#define sheme_black 12 | //------------------------------------------------------------------------------------------------------------------------------------------------- 13 | 14 | //------------------------------------------------------------------------------------------------------------------------------------------------- 15 | #define HUD_STATUS_FONT [UIFont boldSystemFontOfSize:16] 16 | //------------------------------------------------------------------------------------------------------------------------------------------------- 17 | #ifdef sheme_white 18 | #define HUD_STATUS_COLOR [UIColor whiteColor] 19 | #define HUD_SPINNER_COLOR [UIColor whiteColor] 20 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.8] 21 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-white.png"] 22 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-white.png"] 23 | #endif 24 | //------------------------------------------------------------------------------------------------------------------------------------------------- 25 | #ifdef sheme_black 26 | #define HUD_STATUS_COLOR [UIColor blackColor] 27 | #define HUD_SPINNER_COLOR [UIColor blackColor] 28 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.2] 29 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-black.png"] 30 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-black.png"] 31 | #endif 32 | @interface AKCameraMessageHUD : UIView 33 | 34 | + (AKCameraMessageHUD *)shared; 35 | 36 | + (void)dismiss; 37 | + (void)show:(NSString *)status; 38 | + (void)showSuccess:(NSString *)status; 39 | + (void)showError:(NSString *)status; 40 | 41 | @property (atomic, strong) UIWindow *window; 42 | @property (atomic, strong) UIView *hud; 43 | @property (atomic, strong) UIActivityIndicatorView *spinner; 44 | @property (atomic, strong) UIImageView *image; 45 | @property (atomic, strong) UILabel *label; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraNavigationBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationBar.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraNavigationBar : UIView 12 | @property (nonatomic, weak) UIViewController *m_viewCtrlParent; 13 | @property (nonatomic, readonly) BOOL m_bIsCurrStateMiniMode; 14 | @property (nonatomic, readonly) UIButton *m_btnBack; 15 | @property (nonatomic, readonly) UILabel *m_labelTitle; 16 | @property (nonatomic, readonly) UIImageView *m_imgViewBg; 17 | @property (nonatomic, readonly) UIImageView *m_bottomLine; 18 | @property (nonatomic, readonly) UIButton *m_btnLeft; 19 | @property (nonatomic, readonly) UIButton *m_btnRight; 20 | @property (nonatomic, readonly) BOOL m_bIsBlur; 21 | 22 | + (CGRect)rightBtnFrame; 23 | + (CGSize)barBtnSize; 24 | + (CGSize)barSize; 25 | + (CGRect)titleViewFrame; 26 | 27 | // 创建一个导航条按钮:使用默认的按钮图片。 28 | + (UIButton *)createNormalNaviBarBtnByTitle:(NSString *)strTitle target:(id)target action:(SEL)action; 29 | 30 | // 创建一个导航条按钮:自定义按钮图片。 31 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight target:(id)target action:(SEL)action; 32 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight imgSelected:(UIImage *)imgSelected target:(id)target action:(SEL)action; 33 | 34 | // 用自定义的按钮和标题替换默认内容 35 | - (void)setLeftBtn:(UIButton *)btn; 36 | - (void)setRightBtn:(UIButton *)btn; 37 | - (void)setTitle:(NSString *)strTitle; 38 | - (void)setLeftBtnTitle:(NSString *)title; 39 | 40 | // 触发返回 41 | - (void)goBack; 42 | 43 | // 隐藏底边线 44 | - (void)hideBottomLine; 45 | 46 | // 在导航条上覆盖一层自定义视图。比如:输入搜索关键字时,覆盖一个输入框在上面。 47 | - (void)showCoverView:(UIView *)view; 48 | - (void)showCoverView:(UIView *)view animation:(BOOL)bIsAnimation; 49 | - (void)showCoverViewOnTitleView:(UIView *)view; 50 | - (void)hideCoverView:(UIView *)view; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraNavigationController : UINavigationController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraNavigationController.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationController.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraNavigationController.h" 10 | 11 | @interface AKCameraNavigationController () 12 | 13 | @end 14 | 15 | @implementation AKCameraNavigationController 16 | 17 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 18 | { 19 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 20 | if (self) { 21 | // Custom initialization 22 | self.wantsFullScreenLayout = YES; 23 | } 24 | return self; 25 | } 26 | 27 | - (void)viewDidLoad 28 | { 29 | [super viewDidLoad]; 30 | // Do any additional setup after loading the view. 31 | [self setNavigationBarHidden:NO]; // 使导航条有效 32 | [self.navigationBar setHidden:YES]; 33 | } 34 | 35 | - (void)didReceiveMemoryWarning 36 | { 37 | [super didReceiveMemoryWarning]; 38 | // Dispose of any resources that can be recreated. 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraPlayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraPlayer.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | @class AVPlayer; 11 | @interface AKCameraPlayer : UIView 12 | @property (nonatomic, retain) AVPlayer* player; 13 | 14 | - (void)setPlayer:(AVPlayer*)player; 15 | - (void)setVideoFillMode:(NSString *)fillMode; 16 | @end 17 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraPlayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraPlayer.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraPlayer.h" 10 | #import 11 | @implementation AKCameraPlayer 12 | 13 | + (Class)layerClass 14 | { 15 | return [AVPlayerLayer class]; 16 | } 17 | 18 | - (AVPlayer*)player 19 | { 20 | return [(AVPlayerLayer*)[self layer] player]; 21 | } 22 | 23 | - (void)setPlayer:(AVPlayer*)player 24 | { 25 | [(AVPlayerLayer*)[self layer] setPlayer:player]; 26 | [self setVideoFillMode:AVLayerVideoGravityResizeAspectFill]; 27 | } 28 | 29 | /* Specifies how the video is displayed within a player layer’s bounds. 30 | (AVLayerVideoGravityResizeAspect is default) */ 31 | - (void)setVideoFillMode:(NSString *)fillMode 32 | { 33 | AVPlayerLayer *playerLayer = (AVPlayerLayer*)[self layer]; 34 | playerLayer.videoGravity = fillMode; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraRecordView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKRecordView.h 3 | // aikan 4 | // 5 | // Created by lihejun on 14-1-13. 6 | // Copyright (c) 2014年 taobao. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | 12 | @protocol AKCameraRecordViewDelegate; 13 | @interface AKCameraRecordView : UIView 14 | @property (nonatomic, weak) id delegate; 15 | @property (nonatomic, readonly) CGFloat progress; 16 | 17 | - (void)showCapture:(BOOL)granted; 18 | - (void)finishCapture; 19 | - (void)cancelCapture; 20 | 21 | - (void)loadFromCache; // 继续上次未完成的拍摄 22 | 23 | @end 24 | 25 | @protocol AKCameraRecordViewDelegate 26 | 27 | - (void)akRecordViewStartFailed:(AKCameraRecordView *)view error:(NSError *)error; 28 | - (void)akRecordViewEndFailed:(AKCameraRecordView *)view error:(NSError *)error; 29 | - (void)akRecordViewStartStopping:(AKCameraRecordView *)view; 30 | - (void)akRecordViewRequiredDone:(AKCameraRecordView *)view; 31 | - (void)akRecordView:(AKCameraRecordView *)view didFinishWith:(AKVideo *)video keyFrames:(NSArray *)frames; 32 | - (void)akRecordViewProgressTooSmall; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraRecordViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraRecordViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraViewController.h" 11 | 12 | @interface AKCameraRecordViewController : AKCameraViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraSaveViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSaveViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | #import "AKCameraViewController.h" 12 | 13 | @class AKCameraSaveViewController; 14 | 15 | @interface AKCameraSaveViewController : AKCameraViewController 16 | @property (nonatomic, strong)NSURL *videoFileUrlBeforeExport; 17 | @property (nonatomic, weak)AKVideo *video; 18 | @end 19 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraSoundTrackView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSoundTrackView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol AKCameraSoundTrackViewDelegate; 12 | 13 | @interface AKCameraSoundTrackView : UIView 14 | @property (weak, nonatomic) id delegate; 15 | 16 | - (CGFloat)value; 17 | - (void)setSliderValue:(CGFloat )value; 18 | 19 | @end 20 | 21 | @protocol AKCameraSoundTrackViewDelegate 22 | 23 | - (void)soundTrackViewValueChange:(CGFloat)value; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraSwitch.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSwitch.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraSwitch : UIControl 12 | @property(nonatomic, retain) UIColor *tintColor; 13 | @property(nonatomic, retain) UIColor *onTintColor; 14 | @property(nonatomic, assign) UIColor *offTintColor; 15 | @property(nonatomic, assign) UIColor *thumbTintColor; 16 | 17 | @property(nonatomic,getter=isOn) BOOL on; 18 | 19 | - (id)initWithFrame:(CGRect)frame; 20 | 21 | - (void)setOn:(BOOL)on animated:(BOOL)animated; 22 | 23 | - (void)setOnWithoutEvent:(BOOL)on animated:(BOOL)animated; 24 | @end 25 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraTextView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraTextView : UITextView 12 | /** 13 | The string that is displayed when there is no other text in the text view. 14 | 15 | The default value is `nil`. 16 | */ 17 | @property (nonatomic, strong) NSString *placeholder; 18 | 19 | /** 20 | The color of the placeholder. 21 | 22 | The default is `[UIColor lightGrayColor]`. 23 | */ 24 | @property (nonatomic, strong) UIColor *placeholderTextColor; 25 | 26 | /** 27 | Returns the drawing rectangle for the text views’s placeholder text. 28 | 29 | @param bounds The bounding rectangle of the receiver. 30 | @return The computed drawing rectangle for the placeholder text. 31 | */ 32 | - (CGRect)placeholderRectForBounds:(CGRect)bounds; 33 | @end 34 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraThumbnailPicker.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraThumbnailPicker.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class AKCameraThumbnailPicker; 12 | 13 | @protocol ThumbnailPickerViewDelegate 14 | @optional 15 | - (void)thumbnailPickerView:(AKCameraThumbnailPicker *)thumbnailPickerView didSelectImageWithIndex:(NSUInteger)index; 16 | @end 17 | 18 | 19 | @protocol ThumbnailPickerViewDataSource 20 | - (NSUInteger)numberOfImagesForThumbnailPickerView:(AKCameraThumbnailPicker *)thumbnailPickerView; 21 | - (UIImage *)thumbnailPickerView:(AKCameraThumbnailPicker *)thumbnailPickerView imageAtIndex:(NSUInteger)index; 22 | @end 23 | 24 | @interface AKCameraThumbnailPicker : UIControl 25 | // NSNotFound if nothing is selected 26 | @property (nonatomic, assign) NSUInteger selectedIndex; 27 | @property (nonatomic, weak) IBOutlet id dataSource; 28 | @property (nonatomic, weak) IBOutlet id delegate; 29 | @property (nonatomic, assign) CGSize thumbnailSize; 30 | @property (nonatomic,assign) CGSize bigThumbnailSize; 31 | - (void)reloadData; 32 | - (void)reloadThumbnailAtIndex:(NSUInteger)index; 33 | 34 | - (void)setSelectedIndex:(NSUInteger)selectedIndex animated:(BOOL)animated; 35 | 36 | 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraTool.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | #import "AKCameraStyle.h" 12 | #import "AKCameraDefines.h" 13 | #import "AKCameraUtils.h" 14 | 15 | #define kTintColor [UIColor colorWithRed:24/255.0f green:186/255.0f blue:250/255.0f alpha:1] 16 | #define kRecordFileType AVFileTypeQuickTimeMovie//AVFileTypeMPEG4// 17 | #define kMovieFileExtension @"mov" 18 | #define kThumbnailSize CGSizeMake(138, 138) 19 | #define kThumbnailExtend @"thumbnail_" 20 | #define kDescriptionMaxLength 16 21 | #define kMaxKeyFrames 20 22 | 23 | @protocol AKCameraEditDelegate 24 | 25 | - (void)akCameraEditWillFinish; 26 | 27 | @end 28 | 29 | @class AKCameraTool; 30 | @protocol AKCameraToolDelegate 31 | 32 | @optional 33 | // Location provider, format:{city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 34 | - (void)akCameraNeedLocation; // 异步获取地理位置 35 | 36 | - (NSArray *)akCameraNeedNearbyLocations:(NSDictionary *)currentLocation; // 同步获取附近地理位置 37 | - (NSArray *)akCameraNeedChannels; // [[id,name], [id,name]] // 同步获取频道信息 38 | - (NSArray *)akCameraNeedBgms; // [[name, pic, path],[name, pic, path]] // 同步获取BGM信息 39 | 40 | - (void)akCameraWillFinished:(AKVideo *)video asDraft:(BOOL)asDraft; 41 | 42 | @end 43 | @interface AKCameraTool : NSObject 44 | // Parameters 45 | @property (nonatomic, assign)int maxSeconds; 46 | // Cache 47 | @property (nonatomic, strong)AKVideo *video; 48 | // Delegate 49 | @property (nonatomic, weak) id delegate; 50 | 51 | + (AKCameraTool *)shareInstance; 52 | 53 | // Start record 54 | - (void)startRecordFromController:(UIViewController *)controller; 55 | 56 | // Edit 57 | - (void)editVideo:(AKVideo *)video fromController:(UIViewController*)controller; 58 | 59 | // Cache 60 | - (void)syncDataToCache; 61 | 62 | // Notify 63 | - (void)delegateRequestLocationFinish:(NSDictionary *)location; 64 | 65 | @end 66 | 67 | #pragma mark - Private 68 | @protocol AKCameraInternalDelegate 69 | 70 | - (void)akCameraSaveWillCancel:(BOOL)saveAsDraft; // notify to clear 71 | - (void)akCameraSaveWillFinish; // notify to finish 72 | 73 | @end 74 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraUtils.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "AKCameraTool.h" 12 | 13 | @interface AKCameraUtils : NSObject 14 | + (CGPoint)convertToPointOfInterestFromViewCoordinates:(CGPoint)viewCoordinates inFrame:(CGRect)frame; 15 | 16 | + (AVCaptureDevice *)captureDeviceForPosition:(AVCaptureDevicePosition)position; 17 | + (AVCaptureDevice *)audioDevice; 18 | 19 | + (AVCaptureConnection *)connectionWithMediaType:(NSString *)mediaType fromConnections:(NSArray *)connections; 20 | 21 | + (CMSampleBufferRef)createOffsetSampleBufferWithSampleBuffer:(CMSampleBufferRef)sampleBuffer usingTimeOffset:(CMTime)timeOffset duration:(CMTime)duration; 22 | 23 | + (CGFloat)angleOffsetFromPortraitOrientationToOrientation:(AVCaptureVideoOrientation)orientation; 24 | 25 | + (uint64_t)availableDiskSpaceInBytes; 26 | 27 | /* 删除文件 */ 28 | + (void)deleteFile:(NSURL*) url; 29 | 30 | /* 视频保存位置 */ 31 | + (NSString *)getVideoPath; 32 | 33 | /* 封面保存位置 */ 34 | + (NSString *)getCoverPath; 35 | 36 | /* BGM保存位置 */ 37 | + (NSString *)getBgmPath; 38 | 39 | /* 保存封面图片到磁盘 */ 40 | + (NSString *)saveCoverFile:(UIImage *)image with:(NSString *)fileName; 41 | 42 | /* 删除封面图片 */ 43 | + (void)deleteCoverFile:(NSString *)fileName; 44 | 45 | /* 显示录制权限警告窗口 */ 46 | + (void) showCaptureAlert; 47 | 48 | /* 提取封面图片 */ 49 | + (NSArray *)extractImagesFromMovie:(NSURL *)filePath; 50 | + (NSArray *)extractImagesFromAVURLAsset:(AVURLAsset *)movie; 51 | 52 | 53 | /* label设置最小字体大小 */ 54 | + (void)label:(UILabel *)label setMiniFontSize:(CGFloat)fMiniSize forNumberOfLines:(NSInteger)iLines; 55 | 56 | /* 是否4英寸屏幕 */ 57 | + (BOOL)is4InchScreen; 58 | 59 | /* 清除PerformRequests和notification */ 60 | + (void)cancelPerformRequestAndNotification:(UIViewController *)viewCtrl; 61 | 62 | /* 重设scroll view的内容区域和滚动条区域 */ 63 | + (void)resetScrlView:(UIScrollView *)sclView contentInsetWithNaviBar:(BOOL)bHasNaviBar tabBar:(BOOL)bHasTabBar; 64 | + (void)resetScrlView:(UIScrollView *)sclView contentInsetWithNaviBar:(BOOL)bHasNaviBar tabBar:(BOOL)bHasTabBar iOS7ContentInsetStatusBarHeight:(NSInteger)iContentMulti inidcatorInsetStatusBarHeight:(NSInteger)iIndicatorMulti; 65 | 66 | /* 取视频文件路径 */ 67 | + (NSString *)uniqueMovieFileNameWithPrefix:(NSString *)prefix notIn:(NSArray *)used; 68 | 69 | /* 取封面文件路径 */ 70 | + (NSString *)uniqueCoverFilenameWithPrefix:(NSString *)prefix; 71 | 72 | @end 73 | 74 | @interface NSString (AKExtras) 75 | 76 | + (NSString *)AKformattedTimestampStringFromDate:(NSDate *)date; 77 | 78 | @end 79 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraVideoPreview.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraVideoPreview.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class AKCameraVideoPreview; 12 | @protocol AKCameraVideoPreviewDelegate 13 | - (void)previewVideoViewPlay:(AKCameraVideoPreview *)sender; 14 | - (void)previewVideoViewPause:(AKCameraVideoPreview *)sender; 15 | - (void)previewVideoViewStop:(AKCameraVideoPreview *)sender; 16 | @end 17 | 18 | @interface AKCameraVideoPreview : UIView 19 | @property (nonatomic, weak) id delegate; 20 | 21 | - (void)setClipImage:(UIImage *)image; 22 | - (void)play; 23 | - (void)stop; 24 | - (void)pause; 25 | - (BOOL)isPlaying; 26 | - (void)config:(NSURL *)url; 27 | - (void)observeValueForKeyPath:(NSString*) path ofObject:(id)object change:(NSDictionary*)change context:(void*)context; 28 | - (void)setVolume:(CGFloat)volume; 29 | - (void)playerReset; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKCameraViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraNavigationBar.h" 11 | 12 | @interface AKCameraViewController : UIViewController 13 | 14 | - (void)bringNaviBarToTopmost; 15 | 16 | - (void)hideNaviBar:(BOOL)bIsHide; 17 | - (void)setNaviBarTitle:(NSString *)strTitle; 18 | - (void)setNaviBarLeftBtn:(UIButton *)btn; 19 | - (void)setNaviBarLeftBtnTitle:(NSString *)title; 20 | - (void)setNaviBarRightBtn:(UIButton *)btn; 21 | - (void)hideBottomLine; 22 | 23 | - (void)naviBarAddCoverView:(UIView *)view; 24 | - (void)naviBarAddCoverViewOnTitleView:(UIView *)view; 25 | - (void)naviBarRemoveCoverView:(UIView *)view; 26 | 27 | // 控制点击返回按钮行为 28 | - (BOOL)willGoBack; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKRecordProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKRecordProgressView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKRecordProgressView : UIView 12 | @property (nonatomic, strong) UIColor* progressTintColor; 13 | @property (nonatomic, strong) UIColor* borderTintColor; 14 | @property (nonatomic) CGFloat progress; 15 | @property (nonatomic) CGFloat radius; 16 | @property (nonatomic) CGFloat border; 17 | 18 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated; 19 | @end 20 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AKVideo.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKVideo.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKVideo : NSObject 12 | @property (nonatomic, strong)NSString *videoFileName; // 视频文件 13 | @property (nonatomic, strong)NSString *coverFileName; // 封面文件 14 | @property (nonatomic, strong)NSDate *createTime; // 创建时间 15 | @property (nonatomic, strong)NSNumber *duration; // 持续时间 16 | @property (nonatomic, strong)NSNumber *videoFileSize; // 视频文件大小 17 | @property (nonatomic, strong)NSDictionary *location; // 地址: {province:xxx,city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 18 | @property (nonatomic, strong)NSNumber *coverSelectedIndex; // 选中的封面索引 19 | @property (nonatomic, strong)NSNumber *access; // 访问权限: 0 - public; 1 - private 20 | @property (nonatomic, strong)NSNumber *anonymity; // 匿名: 0 - no; 1 - yes 21 | @property (nonatomic, strong)NSString *videoDescription; // 视频描述 22 | @property (nonatomic, strong)NSArray *channel; // 频道:[id,name] 23 | 24 | // 中断拍摄可继续 25 | @property (nonatomic, strong)NSNumber *maxSeconds; // 最长拍摄时长 26 | @property (nonatomic, strong)NSMutableArray *movieFilePaths; // 分段拍摄的各个分段文件路径,用于恢复上次中断的拍摄 27 | @property (nonatomic, strong)NSMutableArray *keyFrames; // 拍摄过程提取的关键帧 28 | @property (nonatomic, strong)UIImage *defaultCover; 29 | 30 | - (void)encodeWithCoder:(NSCoder *)aCoder; 31 | - (id)initWithCoder:(NSCoder *)aDecoder; 32 | 33 | - (NSURL *)getVideoPath; 34 | - (NSURL *)getCoverPath; 35 | - (void)setVideoFilePath:(NSURL *)url; 36 | - (void)setCoverFilePath:(NSURL *)url; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AVPlayer+TrackVolume.h: -------------------------------------------------------------------------------- 1 | // 2 | // AVPlayer+TrackVolume.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AVPlayer (TrackVolume) 12 | - (void)setVolume:(float)volume; 13 | @end 14 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/AVPlayer+TrackVolume.m: -------------------------------------------------------------------------------- 1 | // 2 | // AVPlayer+TrackVolume.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AVPlayer+TrackVolume.h" 10 | 11 | @implementation AVPlayer (TrackVolume) 12 | 13 | - (void)setVolume:(float)volume{ 14 | NSArray *audioTracks = [self.currentItem.asset tracksWithMediaType:AVMediaTypeAudio]; 15 | NSMutableArray *allAudioParams = [NSMutableArray array]; 16 | for (AVAssetTrack *track in audioTracks) { 17 | AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters]; 18 | [audioInputParams setVolume:volume atTime:kCMTimeZero]; 19 | [audioInputParams setTrackID:[track trackID]]; 20 | [allAudioParams addObject:audioInputParams]; 21 | } 22 | AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix]; 23 | [audioMix setInputParameters:allAudioParams]; 24 | [self.currentItem setAudioMix:audioMix]; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/UIImage+AKExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKExtension.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (AKExtension) 12 | 13 | /*! 14 | * @brief Resized image by given size. 15 | * @param size The size to resize. 16 | * @return An UIImage object containing a resized image from the image. 17 | * @details This method depends on CoreGraphics. 18 | */ 19 | - (UIImage *)imageByResizingToSize:(CGSize)size; 20 | 21 | /*! 22 | * @brief Color filled image with given color. 23 | * @param color The color to fill 24 | * @details This method depends on CoreGraphics. 25 | */ 26 | - (UIImage *)imageByFilledWithColor:(UIColor *)color; 27 | 28 | /*! 29 | * @brief Colored image by given size. 30 | * @param color The color to fill. 31 | * @param size The image size to create. 32 | */ 33 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size; 34 | 35 | /*! 36 | * @brief Clear colored image. 37 | */ 38 | + (UIImage *)clearImage; 39 | 40 | /*! 41 | * @brief Image drawn with bazier path. 42 | * @param path The bezier path to draw. 43 | * @param color The stroke color for bezier path. 44 | * @param backgroundColor The fill color for bezier path. 45 | */ 46 | + (UIImage *)imageWithBezierPath:(UIBezierPath *)path color:(UIColor *)color backgroundColor:(UIColor *)backgroundColor; 47 | 48 | /* 49 | * 圆角图片 50 | */ 51 | + (UIImage *)roundedImageWithSize:(CGSize)size color:(UIColor *)color radius:(CGFloat)radius; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/UIImage+AKResize.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKResize.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (AKResize) 12 | 13 | - (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/UIImage+AKResize.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKResize.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "UIImage+AKResize.h" 10 | 11 | @implementation UIImage (AKResize) 12 | 13 | - (UIImage *)imageByCroppingToSize:(CGSize)size 14 | { 15 | double x = (self.size.width - size.width) / 2.0; 16 | double y = (self.size.height - size.height) / 2.0; 17 | 18 | CGRect cropRect = CGRectMake(x, y, size.height, size.width); 19 | CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], cropRect); 20 | 21 | UIImage *cropped = [UIImage imageWithCGImage:imageRef]; 22 | CGImageRelease(imageRef); 23 | 24 | return cropped; 25 | } 26 | 27 | - (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize { 28 | CGSize size = self.size; 29 | if (size.width == targetSize.width && size.height == targetSize.height) { 30 | return self; 31 | } 32 | 33 | CGFloat scale = [[UIScreen mainScreen] scale]; 34 | if (scale == 2.0f) { 35 | targetSize = CGSizeMake(targetSize.width * 2, targetSize.height * 2); 36 | } 37 | 38 | 39 | UIImage *squareImage = Nil; 40 | if (targetSize.width == targetSize.height && size.width != size.height) { 41 | // get center square 42 | squareImage = [self imageByCroppingToSize:CGSizeMake(size.width, size.width)]; 43 | } 44 | /* 45 | CGFloat ratio = 1; 46 | if ((size.height > targetSize.height) || (size.width > targetSize.width)) { 47 | 48 | CGFloat widthFactor = targetSize.width / size.width; 49 | CGFloat heightFactor = targetSize.height / size.height; 50 | 51 | if (widthFactor <= heightFactor) { 52 | ratio = widthFactor; 53 | } else { 54 | ratio = heightFactor; 55 | } 56 | } 57 | CGRect rect = CGRectMake(0.0, 0.0, ratio * size.width, ratio * size.height); 58 | */ 59 | CGRect rect = CGRectMake(0.0, 0.0, targetSize.width, targetSize.height); 60 | UIGraphicsBeginImageContext(rect.size); 61 | if (squareImage) { 62 | [squareImage drawInRect:rect]; 63 | } else { 64 | [self drawInRect:rect]; 65 | } 66 | UIImage *_image = UIGraphicsGetImageFromCurrentImageContext(); 67 | UIGraphicsEndImageContext(); 68 | 69 | return _image; 70 | } 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/UIImageView+AKCameraWebImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+AKCameraWebImageView.h 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraDownloader.h" 11 | 12 | @interface UIImageView (AKCameraWebImageView) 13 | 14 | - (void)setImageWithURL:(NSURL *)url; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/Record/UIImageView+AKCameraWebImageView.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+AKCameraWebImageView.m 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import "UIImageView+AKCameraWebImageView.h" 10 | #import "AKCameraCache.h" 11 | 12 | @implementation UIImageView (AKCameraWebImageView) 13 | 14 | - (void)setImageWithURL:(NSURL *)url { 15 | NSData *data = [[AKCameraCache shareInstance] dataFromKey:[url absoluteString]]; 16 | if (data) { 17 | self.image = [UIImage imageWithData:data]; 18 | return; 19 | } 20 | if (url) 21 | { 22 | AKCameraDownloader *downloader = [[AKCameraDownloader alloc] init]; 23 | [downloader download:[url absoluteString] delegate:self]; 24 | } 25 | } 26 | #pragma mark - DownloaderDelegate 27 | - (void)akCameraDownloader:(AKCameraDownloader *)downloader didFinish:(NSData *)data { 28 | UIImage *img=[UIImage imageWithData:data]; 29 | self.image = img; 30 | CATransition *transition = [CATransition animation]; 31 | transition.duration = .5f; 32 | transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 33 | transition.type = kCATransitionFade; 34 | [self.layer addAnimation:transition forKey:nil]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /LSCamera/LSCamera/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /LSCamera/LSCameraTests/LSCameraTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.lyne.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LSCamera/LSCameraTests/LSCameraTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LSCameraTests.m 3 | // LSCameraTests 4 | // 5 | // Created by lihejun on 14-4-3. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LSCameraTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LSCameraTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LSCamera/LSCameraTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /LSCameraDemo/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/.DS_Store -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo.xcodeproj/project.xcworkspace/xcuserdata/hejun.lhj.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo.xcodeproj/project.xcworkspace/xcuserdata/hejun.lhj.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo.xcodeproj/project.xcworkspace/xcuserdata/lihejun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo.xcodeproj/project.xcworkspace/xcuserdata/lihejun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo.xcodeproj/xcuserdata/hejun.lhj.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LSCameraDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF4E139718EE84A3005002C8 16 | 17 | primary 18 | 19 | 20 | EF4E13B818EE84A3005002C8 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo.xcodeproj/xcuserdata/lihejun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 40 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo.xcodeproj/xcuserdata/lihejun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | LSCameraDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | EF4E139718EE84A3005002C8 16 | 17 | primary 18 | 19 | 20 | EF4E13B818EE84A3005002C8 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/.DS_Store -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/back-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/back-button.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/back-button@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/back-button@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/bgm_cover_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/bgm_cover_0.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/bgm_cover_0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/bgm_cover_0@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/blur-on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/blur-on@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/blur@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/blur@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/camera@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/camera_on_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/camera_on_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/capture_focus@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/capture_focus@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_action_bk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_action_bk.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_action_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_action_bk@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_h.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_n.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_btn_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_slider_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_slider_big.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_slider_big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_slider_big@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_tile_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/cover_tile_selected@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/delete_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/delete_back@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/delete_back_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/delete_back_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk_big.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk_big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/detail_bk_big@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-black.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-black@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-white.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/error-white@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/filter_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/filter_bk@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/filter_mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/filter_mask@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/flashlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/flashlight.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/flashlight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/flashlight@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/flashlight_on_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/flashlight_on_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/magic@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/magic@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/magic_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/magic_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/music@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/music@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_h.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_n.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/music_btn_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/nav_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/nav_bg@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/original@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/original@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/play_icon_38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/play_icon_38@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_left_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_left_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_left_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_left_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_right_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_right_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_right_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/segmented_radio_right_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-black.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-black@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-white.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/success-white@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_delete_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_delete_back@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_play_btn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_play_btn@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_record_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_record_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_record_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_record_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_switch_camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/AKCamera.bundle/tao_switch_camera@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/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 | } -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/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 | } -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/LSCamera: -------------------------------------------------------------------------------- 1 | Versions/Current/LSCamera -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKCameraMessageHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraMessageHUD.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #define sheme_white 11 | //#define sheme_black 12 | //------------------------------------------------------------------------------------------------------------------------------------------------- 13 | 14 | //------------------------------------------------------------------------------------------------------------------------------------------------- 15 | #define HUD_STATUS_FONT [UIFont boldSystemFontOfSize:16] 16 | //------------------------------------------------------------------------------------------------------------------------------------------------- 17 | #ifdef sheme_white 18 | #define HUD_STATUS_COLOR [UIColor whiteColor] 19 | #define HUD_SPINNER_COLOR [UIColor whiteColor] 20 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.8] 21 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-white.png"] 22 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-white.png"] 23 | #endif 24 | //------------------------------------------------------------------------------------------------------------------------------------------------- 25 | #ifdef sheme_black 26 | #define HUD_STATUS_COLOR [UIColor blackColor] 27 | #define HUD_SPINNER_COLOR [UIColor blackColor] 28 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.2] 29 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-black.png"] 30 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-black.png"] 31 | #endif 32 | @interface AKCameraMessageHUD : UIView 33 | 34 | + (AKCameraMessageHUD *)shared; 35 | 36 | + (void)dismiss; 37 | + (void)show:(NSString *)status; 38 | + (void)showSuccess:(NSString *)status; 39 | + (void)showError:(NSString *)status; 40 | 41 | @property (atomic, strong) UIWindow *window; 42 | @property (atomic, strong) UIView *hud; 43 | @property (atomic, strong) UIActivityIndicatorView *spinner; 44 | @property (atomic, strong) UIImageView *image; 45 | @property (atomic, strong) UILabel *label; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKCameraNavigationBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationBar.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraNavigationBar : UIView 12 | @property (nonatomic, weak) UIViewController *m_viewCtrlParent; 13 | @property (nonatomic, readonly) BOOL m_bIsCurrStateMiniMode; 14 | @property (nonatomic, readonly) UIButton *m_btnBack; 15 | @property (nonatomic, readonly) UILabel *m_labelTitle; 16 | @property (nonatomic, readonly) UIImageView *m_imgViewBg; 17 | @property (nonatomic, readonly) UIImageView *m_bottomLine; 18 | @property (nonatomic, readonly) UIButton *m_btnLeft; 19 | @property (nonatomic, readonly) UIButton *m_btnRight; 20 | @property (nonatomic, readonly) BOOL m_bIsBlur; 21 | @property (nonatomic, readonly) UIColor *m_bottomLineColor; 22 | 23 | + (CGRect)rightBtnFrame; 24 | + (CGSize)barBtnSize; 25 | + (CGSize)barSize; 26 | + (CGRect)titleViewFrame; 27 | 28 | // 创建一个导航条按钮:使用默认的按钮图片。 29 | + (UIButton *)createNormalNaviBarBtnByTitle:(NSString *)strTitle target:(id)target action:(SEL)action; 30 | 31 | // 创建一个导航条按钮:自定义按钮图片。 32 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight target:(id)target action:(SEL)action; 33 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight imgSelected:(UIImage *)imgSelected target:(id)target action:(SEL)action; 34 | 35 | // 用自定义的按钮和标题替换默认内容 36 | - (void)setLeftBtn:(UIButton *)btn; 37 | - (void)setRightBtn:(UIButton *)btn; 38 | - (void)setTitle:(NSString *)strTitle; 39 | - (void)setLeftBtnTitle:(NSString *)title; 40 | 41 | // 隐藏底边线 42 | - (void)hideBottomLine; 43 | 44 | // 在导航条上覆盖一层自定义视图。比如:输入搜索关键字时,覆盖一个输入框在上面。 45 | - (void)showCoverView:(UIView *)view; 46 | - (void)showCoverView:(UIView *)view animation:(BOOL)bIsAnimation; 47 | - (void)showCoverViewOnTitleView:(UIView *)view; 48 | - (void)hideCoverView:(UIView *)view; 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKCameraStyle.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraStyle.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraStyle : NSObject 12 | @property (nonatomic, strong)UIColor *navigationBarColor; // 导航条背景颜色 13 | @property (nonatomic, strong)UIColor *navigationTintColor; // 导航色调 14 | @property (nonatomic, assign)BOOL navigationTitleHidden; // 是否显示页面标题 15 | @property (nonatomic, assign)BOOL cameraProgressBarOnBottom; // 拍摄进度条是否在画面底部 16 | @property (nonatomic, strong)UIColor *cameraLineColor; // 最少拍摄提示线颜色 17 | @property (nonatomic, strong)UIColor *cameraCursorColor; // 拍摄进度光标颜色 18 | @property (nonatomic, strong)UIColor *cameraProgressColor; // 拍摄进度条颜色 19 | @property (nonatomic, assign)BOOL useTaoVideoActionBar; // 是否使用淘视频拍摄工具条 20 | @property (nonatomic, assign)BOOL useDefaultCover; // 使用默认第一张图片作为封面,不提供选择封面 21 | @property (nonatomic, assign)BOOL stopAtEditController; // 只需要进行到编辑界面,不显示保存界面 22 | @property (nonatomic, assign)BOOL useTaoVideoBgmPicker; // 使用淘视频背景音乐选择 23 | + (AKCameraStyle *)shareInstance; 24 | 25 | // Custom navigationbar 26 | + (UIColor *)colorForNavigationBar; 27 | + (UIColor *)colorForNavigationTint; 28 | + (BOOL)navigationTitleHidden; 29 | 30 | // Custom recordView 31 | + (BOOL)cameraProgressBarOnBottom; 32 | + (UIColor *)cameraLineColor; 33 | + (UIColor *)cameraCursorColor; 34 | + (UIColor *)cameraProgressColor; 35 | + (BOOL)useTaoVideoActionBar; 36 | + (BOOL)useDefaultCover; 37 | + (BOOL)stopAtEditController; 38 | + (BOOL)useTaoVideoBgmPicker; 39 | 40 | + (UIColor *)colorForHightlight; 41 | 42 | + (UIColor *)colorForHightlightAlpha:(float)alpha; 43 | 44 | + (UIColor *)colorForSeperator; 45 | 46 | + (UIColor *)colorForBackground; 47 | 48 | 49 | 50 | + (UIColor *)colorForBarButtonBackground; 51 | 52 | + (UIView *)lineForMiddleCell:(UIView *)view; 53 | 54 | + (UIView *)lineForTopCell:(UIView *)view; 55 | 56 | + (UIView *)lineForEndCell:(UIView *)view; 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKCameraSwitch.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSwitch.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraSwitch : UIControl 12 | @property(nonatomic, retain) UIColor *tintColor; 13 | @property(nonatomic, retain) UIColor *onTintColor; 14 | @property(nonatomic, assign) UIColor *offTintColor; 15 | @property(nonatomic, assign) UIColor *thumbTintColor; 16 | 17 | @property(nonatomic,getter=isOn) BOOL on; 18 | 19 | - (id)initWithFrame:(CGRect)frame; 20 | 21 | - (void)setOn:(BOOL)on animated:(BOOL)animated; 22 | 23 | - (void)setOnWithoutEvent:(BOOL)on animated:(BOOL)animated; 24 | @end 25 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKCameraTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraTool.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | #import "AKCameraStyle.h" 12 | #import "AKCameraDefines.h" 13 | #import "AKCameraUtils.h" 14 | 15 | #define kTintColor [UIColor colorWithRed:24/255.0f green:186/255.0f blue:250/255.0f alpha:1] 16 | #define kRecordFileType AVFileTypeQuickTimeMovie//AVFileTypeMPEG4// 17 | #define kMovieFileExtension @"mov" 18 | #define kThumbnailSize CGSizeMake(138, 138) 19 | #define kThumbnailExtend @"thumbnail_" 20 | #define kDescriptionMaxLength 16 21 | #define kMaxKeyFrames 20 22 | 23 | @protocol AKCameraSaveDelegate 24 | 25 | - (void)akCameraSaveWillCancel:(BOOL)saveAsDraft; // notify to clear 26 | - (void)akCameraSaveWillFinish; // notify to finish 27 | 28 | @end 29 | 30 | @class AKCameraTool; 31 | @protocol AKCameraToolDelegate 32 | 33 | @optional 34 | // Location provider, format:{city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 35 | - (void)akCameraNeedLocation; 36 | - (NSArray *)akCameraNeedNearbyLocations; 37 | - (NSArray *)akCameraNeedChannels; // [[id,name], [id,name]] 38 | - (void)akCameraWillFinished:(AKVideo *)video asDraft:(BOOL)asDraft; 39 | 40 | @end 41 | @interface AKCameraTool : NSObject 42 | // Parameters 43 | @property (nonatomic, assign)int maxSeconds; 44 | // Cache 45 | @property (nonatomic, strong)AKVideo *video; 46 | // Delegate 47 | @property (nonatomic, weak) id delegate; 48 | 49 | + (AKCameraTool *)shareInstance; 50 | 51 | // Start record 52 | - (void)startRecordFromController:(UIViewController *)controller; 53 | 54 | // Cache 55 | - (void)syncDataToCache; 56 | 57 | // Notify 58 | - (void)delegateRequestLocationFinish:(NSDictionary *)location; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKCameraUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraUtils.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "AKCameraTool.h" 12 | 13 | @interface AKCameraUtils : NSObject 14 | + (CGPoint)convertToPointOfInterestFromViewCoordinates:(CGPoint)viewCoordinates inFrame:(CGRect)frame; 15 | 16 | + (AVCaptureDevice *)captureDeviceForPosition:(AVCaptureDevicePosition)position; 17 | + (AVCaptureDevice *)audioDevice; 18 | 19 | + (AVCaptureConnection *)connectionWithMediaType:(NSString *)mediaType fromConnections:(NSArray *)connections; 20 | 21 | + (CMSampleBufferRef)createOffsetSampleBufferWithSampleBuffer:(CMSampleBufferRef)sampleBuffer usingTimeOffset:(CMTime)timeOffset duration:(CMTime)duration; 22 | 23 | + (CGFloat)angleOffsetFromPortraitOrientationToOrientation:(AVCaptureVideoOrientation)orientation; 24 | 25 | + (uint64_t)availableDiskSpaceInBytes; 26 | 27 | /* 删除文件 */ 28 | + (void)deleteFile:(NSURL*) url; 29 | 30 | /* 视频保存位置 */ 31 | + (NSString *)getVideoPath; 32 | 33 | /* 封面保存位置 */ 34 | + (NSString *)getCoverPath; 35 | 36 | /* 保存封面图片到磁盘 */ 37 | + (NSString *)saveCoverFile:(UIImage *)image with:(NSString *)fileName; 38 | 39 | /* 删除封面图片 */ 40 | + (void)deleteCoverFile:(NSString *)fileName; 41 | 42 | /* 显示录制权限警告窗口 */ 43 | + (void) showCaptureAlert; 44 | 45 | /* 提取封面图片 */ 46 | + (NSArray *)extractImagesFromMovie:(NSURL *)filePath; 47 | + (NSArray *)extractImagesFromAVURLAsset:(AVURLAsset *)movie; 48 | 49 | 50 | /* label设置最小字体大小 */ 51 | + (void)label:(UILabel *)label setMiniFontSize:(CGFloat)fMiniSize forNumberOfLines:(NSInteger)iLines; 52 | 53 | /* 是否4英寸屏幕 */ 54 | + (BOOL)is4InchScreen; 55 | 56 | /* 清除PerformRequests和notification */ 57 | + (void)cancelPerformRequestAndNotification:(UIViewController *)viewCtrl; 58 | 59 | /* 重设scroll view的内容区域和滚动条区域 */ 60 | + (void)resetScrlView:(UIScrollView *)sclView contentInsetWithNaviBar:(BOOL)bHasNaviBar tabBar:(BOOL)bHasTabBar; 61 | + (void)resetScrlView:(UIScrollView *)sclView contentInsetWithNaviBar:(BOOL)bHasNaviBar tabBar:(BOOL)bHasTabBar iOS7ContentInsetStatusBarHeight:(NSInteger)iContentMulti inidcatorInsetStatusBarHeight:(NSInteger)iIndicatorMulti; 62 | 63 | /* 取视频文件路径 */ 64 | + (NSString *)uniqueMovieFilePath; 65 | 66 | /* 取封面文件路径 */ 67 | + (NSString *)uniqueCoverFilenameWithPrefix:(NSString *)prefix; 68 | 69 | @end 70 | 71 | @interface NSString (AKExtras) 72 | 73 | + (NSString *)AKformattedTimestampStringFromDate:(NSDate *)date; 74 | 75 | @end 76 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKRecordProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKRecordProgressView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKRecordProgressView : UIView 12 | @property (nonatomic, strong) UIColor* progressTintColor; 13 | @property (nonatomic, strong) UIColor* borderTintColor; 14 | @property (nonatomic) CGFloat progress; 15 | @property (nonatomic) CGFloat radius; 16 | @property (nonatomic) CGFloat border; 17 | 18 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated; 19 | @end 20 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/AKVideo.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKVideo.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKVideo : NSObject 12 | @property (nonatomic, strong)NSString *videoFileName; // 视频文件 13 | @property (nonatomic, strong)NSString *coverFileName; // 封面文件 14 | @property (nonatomic, strong)NSDate *createTime; // 创建时间 15 | @property (nonatomic, strong)NSNumber *duration; // 持续时间 16 | @property (nonatomic, strong)NSNumber *videoFileSize; // 视频文件大小 17 | @property (nonatomic, strong)NSDictionary *location; // 地址: {province:xxx,city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 18 | @property (nonatomic, strong)NSNumber *coverSelectedIndex; // 选中的封面索引 19 | @property (nonatomic, strong)NSNumber *access; // 访问权限: 0 - public; 1 - private 20 | @property (nonatomic, strong)NSNumber *anonymity; // 匿名: 0 - no; 1 - yes 21 | @property (nonatomic, strong)NSString *videoDescription; // 视频描述 22 | @property (nonatomic, strong)NSArray *channel; // 频道:[id,name] 23 | 24 | // 中断拍摄可继续 25 | @property (nonatomic, strong)NSNumber *maxSeconds; // 最长拍摄时长 26 | @property (nonatomic, strong)NSMutableArray *movieFilePaths; // 分段拍摄的各个分段文件路径,用于恢复上次中断的拍摄 27 | @property (nonatomic, strong)NSMutableArray *keyFrames; // 拍摄过程提取的关键帧 28 | @property (nonatomic, strong)UIImage *defaultCover; 29 | 30 | - (void)encodeWithCoder:(NSCoder *)aCoder; 31 | - (id)initWithCoder:(NSCoder *)aDecoder; 32 | 33 | - (NSURL *)getVideoPath; 34 | - (NSURL *)getCoverPath; 35 | - (void)setVideoFilePath:(NSURL *)url; 36 | - (void)setCoverFilePath:(NSURL *)url; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Headers/UIImage+AKExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKExtension.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (AKExtension) 12 | 13 | /*! 14 | * @brief Resized image by given size. 15 | * @param size The size to resize. 16 | * @return An UIImage object containing a resized image from the image. 17 | * @details This method depends on CoreGraphics. 18 | */ 19 | - (UIImage *)imageByResizingToSize:(CGSize)size; 20 | 21 | /*! 22 | * @brief Color filled image with given color. 23 | * @param color The color to fill 24 | * @details This method depends on CoreGraphics. 25 | */ 26 | - (UIImage *)imageByFilledWithColor:(UIColor *)color; 27 | 28 | /*! 29 | * @brief Colored image by given size. 30 | * @param color The color to fill. 31 | * @param size The image size to create. 32 | */ 33 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size; 34 | 35 | /*! 36 | * @brief Clear colored image. 37 | */ 38 | + (UIImage *)clearImage; 39 | 40 | /*! 41 | * @brief Image drawn with bazier path. 42 | * @param path The bezier path to draw. 43 | * @param color The stroke color for bezier path. 44 | * @param backgroundColor The fill color for bezier path. 45 | */ 46 | + (UIImage *)imageWithBezierPath:(UIBezierPath *)path color:(UIColor *)color backgroundColor:(UIColor *)backgroundColor; 47 | 48 | /* 49 | * 圆角图片 50 | */ 51 | + (UIImage *)roundedImageWithSize:(CGSize)size color:(UIColor *)color radius:(CGFloat)radius; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/LSCamera: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/LSCamera -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/back-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/back-button.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/back-button@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/back-button@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/DT.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/DT.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/Diary.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/Diary.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/GQQ.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/GQQ.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/IBelieve.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/IBelieve.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/KN.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/KN.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/LX.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/LX.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/Summer.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/Summer.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/TheMass.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/TheMass.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/XXX.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/XXX.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/ZG.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm/ZG.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_0.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_0@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_1.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_10.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_10@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_10@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_1@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_2.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_2@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_3.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_3@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_4.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_4@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_5.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_5@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_6.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_6@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_6@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_7.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_7@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_8.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_8@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_8@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_9.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_9@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/bgm_cover_9@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/blur-on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/blur-on@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/blur@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/blur@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/camera@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/camera_on_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/camera_on_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/capture_focus@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/capture_focus@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_action_bk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_action_bk.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_action_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_action_bk@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_h.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_n.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_btn_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_slider_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_slider_big.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_slider_big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_slider_big@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_tile_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/cover_tile_selected@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/delete_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/delete_back@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/delete_back_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/delete_back_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk_big.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk_big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/detail_bk_big@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-black.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-black@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-white.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/error-white@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/filter_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/filter_bk@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/filter_mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/filter_mask@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/flashlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/flashlight.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/flashlight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/flashlight@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/flashlight_on_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/flashlight_on_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/magic@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/magic@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/magic_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/magic_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_h.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_n.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/music_btn_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/nav_bg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/nav_bg@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/original@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/original@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/play_icon_38@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/play_icon_38@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-black.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-black@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-white.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/success-white@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_delete_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_delete_back@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_play_btn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_play_btn@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_record_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_record_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_record_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_record_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_switch_camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/tao_switch_camera@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/video_edit_leader_bk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/AKCamera.bundle/video_edit_leader_bk@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/Info.plist -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/en.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_delete_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_delete_back@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_record_h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_record_h@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_record_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_record_n@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_switch_camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/A/Resources/tao_switch_camera@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCamera.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCameraAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // LSCameraAppDelegate.h 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LSCameraAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCameraAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // LSCameraAppDelegate.m 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import "LSCameraAppDelegate.h" 10 | 11 | @implementation LSCameraAppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | // Override point for customization after application launch. 16 | return YES; 17 | } 18 | 19 | - (void)applicationWillResignActive:(UIApplication *)application 20 | { 21 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 22 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 23 | } 24 | 25 | - (void)applicationDidEnterBackground:(UIApplication *)application 26 | { 27 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | - (void)applicationWillEnterForeground:(UIApplication *)application 32 | { 33 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | - (void)applicationDidBecomeActive:(UIApplication *)application 37 | { 38 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application 42 | { 43 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCameraDemo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | VideoShort 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.lyne.${PRODUCT_NAME:rfc1034identifier} 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 | 请求获取摄像头权限 29 | NSMicrophoneUsageDescription 30 | 请求获取麦克风权限 31 | NSPhotoLibraryUsageDescription 32 | 请求获取相册权限 33 | UIFileSharingEnabled 34 | 35 | UILaunchStoryboardName 36 | Launch Screen 37 | UIMainStoryboardFile 38 | Main 39 | UIRequiredDeviceCapabilities 40 | 41 | armv7 42 | 43 | UISupportedInterfaceOrientations 44 | 45 | UIInterfaceOrientationPortrait 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCameraDemo-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 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/LSCameraViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LSCameraViewController.h 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LSCameraViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraBGM.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraBGM.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraBGM : NSObject 12 | @property (nonatomic, strong)NSMutableArray *items; 13 | 14 | + (AKCameraBGM *)shareInstance; 15 | 16 | - (void)syncDataToCache; 17 | 18 | @end 19 | 20 | @interface BGMItem : NSObject 21 | 22 | @property (nonatomic, strong)NSString *name; 23 | @property (nonatomic, strong)NSString *path; 24 | @property (nonatomic, strong)NSString *cover; 25 | @property (nonatomic, strong)NSString *url; 26 | 27 | + (BGMItem *)itemWithName:(NSString *)name path:(NSString *)path cover:(NSString *)cover url:(NSString *)url; 28 | 29 | - (void)encodeWithCoder:(NSCoder *)aCoder; 30 | - (id)initWithCoder:(NSCoder *)aDecoder; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraBGM.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraBGM.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraBGM.h" 10 | #import "AKCameraCache.h" 11 | 12 | #define kBgmKey @"bgms" 13 | 14 | @implementation AKCameraBGM 15 | 16 | + (AKCameraBGM *)shareInstance { 17 | static AKCameraBGM *s_instance; 18 | static dispatch_once_t onceToken; 19 | dispatch_once(&onceToken, ^{ 20 | s_instance = [[self alloc] init]; 21 | }); 22 | return s_instance; 23 | } 24 | 25 | - (void)syncDataToCache { 26 | NSData *data = [NSKeyedArchiver archivedDataWithRootObject:_items]; 27 | [[AKCameraCache shareInstance] storeData:data forKey:kBgmKey]; 28 | } 29 | 30 | #pragma mark - Getter 31 | - (NSMutableArray *)items { 32 | if (!_items) { 33 | _items = [NSMutableArray array]; 34 | } 35 | return _items; 36 | } 37 | 38 | @end 39 | 40 | @implementation BGMItem 41 | 42 | + (BGMItem *)itemWithName:(NSString *)name path:(NSString *)path cover:(NSString *)cover url:(NSString *)url { 43 | BGMItem *item = [[BGMItem alloc] init]; 44 | item.name = name; 45 | item.path = path; 46 | item.cover = cover; 47 | item.url = url; 48 | return item; 49 | } 50 | 51 | -(void)encodeWithCoder:(NSCoder *)aCoder{ 52 | //encode properties/values 53 | [aCoder encodeObject:_name forKey:@"name"]; 54 | [aCoder encodeObject:_path forKey:@"path"]; 55 | [aCoder encodeObject:_cover forKey:@"cover"]; 56 | [aCoder encodeObject:_url forKey:@"url"]; 57 | } 58 | 59 | -(id)initWithCoder:(NSCoder *)aDecoder{ 60 | if((self = [super init])) { 61 | //decode properties/values 62 | _name = [aDecoder decodeObjectForKey:@"name"]; 63 | _path =[aDecoder decodeObjectForKey:@"path"]; 64 | _cover =[aDecoder decodeObjectForKey:@"cover"]; 65 | _url =[aDecoder decodeObjectForKey:@"url"]; 66 | } 67 | 68 | return self; 69 | } 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraBGMCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraBGMCell.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraBGM.h" 11 | 12 | @class AKCameraBGMCell; 13 | @protocol AKCameraBGMCellDelegate 14 | 15 | - (void)akCameraBGMCellTapped:(AKCameraBGMCell *)cell; 16 | 17 | @end 18 | 19 | @interface AKCameraBGMCell : UIView 20 | @property (nonatomic, weak)BGMItem *item; 21 | @property (nonatomic, assign)BOOL selected; 22 | @property (nonatomic, weak)id delegate; 23 | @end 24 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraCache.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraCache.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraCache : NSObject 12 | { 13 | NSString *diskCachePath; 14 | NSOperationQueue *cacheInQueue, *cacheOutQueue; 15 | NSMutableDictionary *memCache; 16 | } 17 | 18 | + (AKCameraCache *)shareInstance; 19 | 20 | - (void)storeData:(NSData *)aData forKey:(NSString *)key; 21 | - (NSData *)dataFromKey:(NSString *)key; 22 | - (void)removeDataForKey:(NSString *)key; 23 | - (void)clearDisk; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraChannelViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraChannelViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraViewController.h" 11 | 12 | @class AKCameraChannelViewController; 13 | @protocol AKChannelSelectDelegate 14 | 15 | -(void)viewController:(AKCameraChannelViewController *)viewController didSelectChannel:(NSArray *)channel; 16 | 17 | @end 18 | 19 | @interface AKCameraChannelViewController : AKCameraViewController 20 | @property (nonatomic, weak)NSArray *activeChannel; 21 | @property (nonatomic, weak)id delegate; 22 | 23 | + (AKCameraChannelViewController *)shareInstance; 24 | 25 | @end 26 | 27 | @interface AKChannelCell : UITableViewCell 28 | @property (nonatomic, weak)NSArray *channel; 29 | @end 30 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraDownloader.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraDownloader.h 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class AKCameraDownloader; 12 | @protocol AKCameraDownloaderDelegate 13 | 14 | - (void)akCameraDownloader:(AKCameraDownloader *)downloader didFinish:(NSData *)data; 15 | @optional 16 | - (void)akCameraDownloaderDidFailed:(AKCameraDownloader *)downloader; 17 | - (void)akCameraDownloader:(AKCameraDownloader *)downloader progress:(float)progress; 18 | 19 | @end 20 | 21 | @interface AKCameraDownloader : NSObject 22 | @property (nonatomic, weak)id delegate; 23 | 24 | - (void)download:(NSString *)urlString delegate:(id)delegate; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraEditViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraEditViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraTool.h" 11 | #import "AKCameraExporter.h" 12 | #import "AKCameraViewController.h" 13 | 14 | @interface AKCameraEditViewController : AKCameraViewController 15 | 16 | @property (copy, nonatomic) NSArray *images; 17 | @property (weak, nonatomic) AKVideo *video; 18 | @property (assign,nonatomic)BOOL fromLocal; // 来自本地视频 19 | @property (nonatomic, weak) id delegate; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraFocusView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraFocusView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraFocusView : UIView 12 | 13 | - (void)startAnimation; 14 | - (void)stopAnimation; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraFocusView.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraFocusView.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraFocusView.h" 10 | #import "UIImage+AKExtension.h" 11 | #import "AKCameraStyle.h" 12 | 13 | @interface AKCameraFocusView() 14 | { 15 | UIImageView *_focusRingView; 16 | } 17 | 18 | @end 19 | 20 | @implementation AKCameraFocusView 21 | 22 | #pragma mark - init 23 | 24 | - (id)initWithFrame:(CGRect)frame 25 | { 26 | self = [super initWithFrame:frame]; 27 | if (self) { 28 | self.backgroundColor = [UIColor clearColor]; 29 | self.contentMode = UIViewContentModeScaleToFill; 30 | UIImage *img = [[UIImage imageNamed:@"AKCamera.bundle/capture_focus"] imageByFilledWithColor:[AKCameraStyle cameraLineColor]]; 31 | _focusRingView = [[UIImageView alloc] initWithImage:img]; 32 | [self addSubview:_focusRingView]; 33 | 34 | self.frame = _focusRingView.frame; 35 | } 36 | return self; 37 | } 38 | 39 | - (void)dealloc 40 | { 41 | [self.layer removeAllAnimations]; 42 | } 43 | 44 | #pragma mark - 45 | 46 | - (void)startAnimation 47 | { 48 | [self.layer removeAllAnimations]; 49 | 50 | self.transform = CGAffineTransformMakeScale(1.4f, 1.4f); 51 | self.alpha = 0; 52 | 53 | [UIView animateWithDuration:0.4f delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ 54 | 55 | self.transform = CGAffineTransformIdentity; 56 | self.alpha = 1; 57 | 58 | } completion:^(BOOL finished) { 59 | [UIView animateWithDuration:0.4f delay:0 options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat animations:^{ 60 | 61 | self.transform = CGAffineTransformMakeScale(1.1f, 1.1f); 62 | self.alpha = 1; 63 | 64 | } completion:^(BOOL finished1) { 65 | }]; 66 | }]; 67 | } 68 | 69 | - (void)stopAnimation 70 | { 71 | [self.layer removeAllAnimations]; 72 | 73 | [UIView animateWithDuration:0.2f delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 74 | 75 | self.transform = CGAffineTransformMakeScale(0.001f, 0.001f); 76 | self.alpha = 0; 77 | 78 | } completion:^(BOOL finished) { 79 | 80 | [self removeFromSuperview]; 81 | 82 | }]; 83 | } 84 | 85 | @end 86 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraLocationViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraLocationViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraViewController.h" 11 | 12 | @class AKCameraLocationViewController; 13 | @protocol AKCameraLocationDelegate 14 | 15 | @optional 16 | - (void)viewController:(AKCameraLocationViewController *)controller didSelectLocation:(NSDictionary *)location; 17 | 18 | @end 19 | 20 | @interface AKCameraLocationViewController : AKCameraViewController 21 | @property (weak, nonatomic)id delegate; 22 | @property (strong, nonatomic)NSDictionary *location; 23 | @property (strong, nonatomic)NSArray *locations; 24 | 25 | + (AKCameraLocationViewController *)shareInstance; 26 | 27 | @end 28 | 29 | @interface AKLocationCell : UITableViewCell 30 | @property (nonatomic, weak)NSDictionary *location; 31 | @end 32 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraMessageHUD.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraMessageHUD.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #define sheme_white 11 | //#define sheme_black 12 | //------------------------------------------------------------------------------------------------------------------------------------------------- 13 | 14 | //------------------------------------------------------------------------------------------------------------------------------------------------- 15 | #define HUD_STATUS_FONT [UIFont boldSystemFontOfSize:16] 16 | //------------------------------------------------------------------------------------------------------------------------------------------------- 17 | #ifdef sheme_white 18 | #define HUD_STATUS_COLOR [UIColor whiteColor] 19 | #define HUD_SPINNER_COLOR [UIColor whiteColor] 20 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.8] 21 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-white.png"] 22 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-white.png"] 23 | #endif 24 | //------------------------------------------------------------------------------------------------------------------------------------------------- 25 | #ifdef sheme_black 26 | #define HUD_STATUS_COLOR [UIColor blackColor] 27 | #define HUD_SPINNER_COLOR [UIColor blackColor] 28 | #define HUD_BACKGROUND_COLOR [UIColor colorWithWhite:0 alpha:0.2] 29 | #define HUD_IMAGE_SUCCESS [UIImage imageNamed:@"AKCamera.bundle/success-black.png"] 30 | #define HUD_IMAGE_ERROR [UIImage imageNamed:@"AKCamera.bundle/error-black.png"] 31 | #endif 32 | @interface AKCameraMessageHUD : UIView 33 | 34 | + (AKCameraMessageHUD *)shared; 35 | 36 | + (void)dismiss; 37 | + (void)show:(NSString *)status; 38 | + (void)showSuccess:(NSString *)status; 39 | + (void)showError:(NSString *)status; 40 | 41 | @property (atomic, strong) UIWindow *window; 42 | @property (atomic, strong) UIView *hud; 43 | @property (atomic, strong) UIActivityIndicatorView *spinner; 44 | @property (atomic, strong) UIImageView *image; 45 | @property (atomic, strong) UILabel *label; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraNavigationBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationBar.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraNavigationBar : UIView 12 | @property (nonatomic, weak) UIViewController *m_viewCtrlParent; 13 | @property (nonatomic, readonly) BOOL m_bIsCurrStateMiniMode; 14 | @property (nonatomic, readonly) UIButton *m_btnBack; 15 | @property (nonatomic, readonly) UILabel *m_labelTitle; 16 | @property (nonatomic, readonly) UIImageView *m_imgViewBg; 17 | @property (nonatomic, readonly) UIImageView *m_bottomLine; 18 | @property (nonatomic, readonly) UIButton *m_btnLeft; 19 | @property (nonatomic, readonly) UIButton *m_btnRight; 20 | @property (nonatomic, readonly) BOOL m_bIsBlur; 21 | 22 | + (CGRect)rightBtnFrame; 23 | + (CGSize)barBtnSize; 24 | + (CGSize)barSize; 25 | + (CGRect)titleViewFrame; 26 | 27 | // 创建一个导航条按钮:使用默认的按钮图片。 28 | + (UIButton *)createNormalNaviBarBtnByTitle:(NSString *)strTitle target:(id)target action:(SEL)action; 29 | 30 | // 创建一个导航条按钮:自定义按钮图片。 31 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight target:(id)target action:(SEL)action; 32 | + (UIButton *)createImgNaviBarBtnByImgNormal:(UIImage *)imgNormal imgHighlight:(UIImage *)imgHighlight imgSelected:(UIImage *)imgSelected target:(id)target action:(SEL)action; 33 | 34 | // 用自定义的按钮和标题替换默认内容 35 | - (void)setLeftBtn:(UIButton *)btn; 36 | - (void)setRightBtn:(UIButton *)btn; 37 | - (void)setTitle:(NSString *)strTitle; 38 | - (void)setLeftBtnTitle:(NSString *)title; 39 | 40 | // 触发返回 41 | - (void)goBack; 42 | 43 | // 隐藏底边线 44 | - (void)hideBottomLine; 45 | 46 | // 在导航条上覆盖一层自定义视图。比如:输入搜索关键字时,覆盖一个输入框在上面。 47 | - (void)showCoverView:(UIView *)view; 48 | - (void)showCoverView:(UIView *)view animation:(BOOL)bIsAnimation; 49 | - (void)showCoverViewOnTitleView:(UIView *)view; 50 | - (void)hideCoverView:(UIView *)view; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraNavigationController : UINavigationController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraNavigationController.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraNavigationController.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraNavigationController.h" 10 | 11 | @interface AKCameraNavigationController () 12 | 13 | @end 14 | 15 | @implementation AKCameraNavigationController 16 | 17 | - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 18 | { 19 | self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 20 | if (self) { 21 | // Custom initialization 22 | self.wantsFullScreenLayout = YES; 23 | } 24 | return self; 25 | } 26 | 27 | - (void)viewDidLoad 28 | { 29 | [super viewDidLoad]; 30 | // Do any additional setup after loading the view. 31 | [self setNavigationBarHidden:NO]; // 使导航条有效 32 | [self.navigationBar setHidden:YES]; 33 | } 34 | 35 | - (void)didReceiveMemoryWarning 36 | { 37 | [super didReceiveMemoryWarning]; 38 | // Dispose of any resources that can be recreated. 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraPlayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraPlayer.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | @class AVPlayer; 11 | @interface AKCameraPlayer : UIView 12 | @property (nonatomic, retain) AVPlayer* player; 13 | 14 | - (void)setPlayer:(AVPlayer*)player; 15 | - (void)setVideoFillMode:(NSString *)fillMode; 16 | @end 17 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraPlayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraPlayer.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AKCameraPlayer.h" 10 | #import 11 | @implementation AKCameraPlayer 12 | 13 | + (Class)layerClass 14 | { 15 | return [AVPlayerLayer class]; 16 | } 17 | 18 | - (AVPlayer*)player 19 | { 20 | return [(AVPlayerLayer*)[self layer] player]; 21 | } 22 | 23 | - (void)setPlayer:(AVPlayer*)player 24 | { 25 | [(AVPlayerLayer*)[self layer] setPlayer:player]; 26 | [self setVideoFillMode:AVLayerVideoGravityResizeAspectFill]; 27 | } 28 | 29 | /* Specifies how the video is displayed within a player layer’s bounds. 30 | (AVLayerVideoGravityResizeAspect is default) */ 31 | - (void)setVideoFillMode:(NSString *)fillMode 32 | { 33 | AVPlayerLayer *playerLayer = (AVPlayerLayer*)[self layer]; 34 | playerLayer.videoGravity = fillMode; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraRecordView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKRecordView.h 3 | // aikan 4 | // 5 | // Created by lihejun on 14-1-13. 6 | // Copyright (c) 2014年 taobao. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | 12 | @protocol AKCameraRecordViewDelegate; 13 | @interface AKCameraRecordView : UIView 14 | @property (nonatomic, weak) id delegate; 15 | @property (nonatomic, readonly) CGFloat progress; 16 | 17 | - (void)showCapture:(BOOL)granted; 18 | - (void)finishCapture; 19 | - (void)cancelCapture; 20 | 21 | - (void)loadFromCache; // 继续上次未完成的拍摄 22 | 23 | @end 24 | 25 | @protocol AKCameraRecordViewDelegate 26 | 27 | - (void)akRecordViewStartFailed:(AKCameraRecordView *)view error:(NSError *)error; 28 | - (void)akRecordViewEndFailed:(AKCameraRecordView *)view error:(NSError *)error; 29 | - (void)akRecordViewStartStopping:(AKCameraRecordView *)view; 30 | - (void)akRecordViewRequiredDone:(AKCameraRecordView *)view; 31 | - (void)akRecordView:(AKCameraRecordView *)view didFinishWith:(AKVideo *)video keyFrames:(NSArray *)frames; 32 | - (void)akRecordViewProgressTooSmall; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraRecordViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraRecordViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraViewController.h" 11 | 12 | @interface AKCameraRecordViewController : AKCameraViewController 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraSaveViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSaveViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | #import "AKCameraViewController.h" 12 | 13 | @class AKCameraSaveViewController; 14 | 15 | @interface AKCameraSaveViewController : AKCameraViewController 16 | @property (nonatomic, strong)NSURL *videoFileUrlBeforeExport; 17 | @property (nonatomic, weak)AKVideo *video; 18 | @end 19 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraSoundTrackView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSoundTrackView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol AKCameraSoundTrackViewDelegate; 12 | 13 | @interface AKCameraSoundTrackView : UIView 14 | @property (weak, nonatomic) id delegate; 15 | 16 | - (CGFloat)value; 17 | - (void)setSliderValue:(CGFloat )value; 18 | 19 | @end 20 | 21 | @protocol AKCameraSoundTrackViewDelegate 22 | 23 | - (void)soundTrackViewValueChange:(CGFloat)value; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraSwitch.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraSwitch.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraSwitch : UIControl 12 | @property(nonatomic, retain) UIColor *tintColor; 13 | @property(nonatomic, retain) UIColor *onTintColor; 14 | @property(nonatomic, assign) UIColor *offTintColor; 15 | @property(nonatomic, assign) UIColor *thumbTintColor; 16 | 17 | @property(nonatomic,getter=isOn) BOOL on; 18 | 19 | - (id)initWithFrame:(CGRect)frame; 20 | 21 | - (void)setOn:(BOOL)on animated:(BOOL)animated; 22 | 23 | - (void)setOnWithoutEvent:(BOOL)on animated:(BOOL)animated; 24 | @end 25 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraTextView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-18. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKCameraTextView : UITextView 12 | /** 13 | The string that is displayed when there is no other text in the text view. 14 | 15 | The default value is `nil`. 16 | */ 17 | @property (nonatomic, strong) NSString *placeholder; 18 | 19 | /** 20 | The color of the placeholder. 21 | 22 | The default is `[UIColor lightGrayColor]`. 23 | */ 24 | @property (nonatomic, strong) UIColor *placeholderTextColor; 25 | 26 | /** 27 | Returns the drawing rectangle for the text views’s placeholder text. 28 | 29 | @param bounds The bounding rectangle of the receiver. 30 | @return The computed drawing rectangle for the placeholder text. 31 | */ 32 | - (CGRect)placeholderRectForBounds:(CGRect)bounds; 33 | @end 34 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraThumbnailPicker.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraThumbnailPicker.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class AKCameraThumbnailPicker; 12 | 13 | @protocol ThumbnailPickerViewDelegate 14 | @optional 15 | - (void)thumbnailPickerView:(AKCameraThumbnailPicker *)thumbnailPickerView didSelectImageWithIndex:(NSUInteger)index; 16 | @end 17 | 18 | 19 | @protocol ThumbnailPickerViewDataSource 20 | - (NSUInteger)numberOfImagesForThumbnailPickerView:(AKCameraThumbnailPicker *)thumbnailPickerView; 21 | - (UIImage *)thumbnailPickerView:(AKCameraThumbnailPicker *)thumbnailPickerView imageAtIndex:(NSUInteger)index; 22 | @end 23 | 24 | @interface AKCameraThumbnailPicker : UIControl 25 | // NSNotFound if nothing is selected 26 | @property (nonatomic, assign) NSUInteger selectedIndex; 27 | @property (nonatomic, weak) IBOutlet id dataSource; 28 | @property (nonatomic, weak) IBOutlet id delegate; 29 | @property (nonatomic, assign) CGSize thumbnailSize; 30 | @property (nonatomic,assign) CGSize bigThumbnailSize; 31 | - (void)reloadData; 32 | - (void)reloadThumbnailAtIndex:(NSUInteger)index; 33 | 34 | - (void)setSelectedIndex:(NSUInteger)selectedIndex animated:(BOOL)animated; 35 | 36 | 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraTool.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKVideo.h" 11 | #import "AKCameraStyle.h" 12 | #import "AKCameraDefines.h" 13 | #import "AKCameraUtils.h" 14 | 15 | #define kTintColor [UIColor colorWithRed:24/255.0f green:186/255.0f blue:250/255.0f alpha:1] 16 | #define kRecordFileType AVFileTypeQuickTimeMovie//AVFileTypeMPEG4// 17 | #define kMovieFileExtension @"mov" 18 | #define kThumbnailSize CGSizeMake(138, 138) 19 | #define kThumbnailExtend @"thumbnail_" 20 | #define kDescriptionMaxLength 16 21 | #define kMaxKeyFrames 20 22 | 23 | @protocol AKCameraEditDelegate 24 | 25 | - (void)akCameraEditWillFinish; 26 | 27 | @end 28 | 29 | @class AKCameraTool; 30 | @protocol AKCameraToolDelegate 31 | 32 | @optional 33 | // Location provider, format:{city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 34 | - (void)akCameraNeedLocation; // 异步获取地理位置 35 | 36 | - (NSArray *)akCameraNeedNearbyLocations:(NSDictionary *)currentLocation; // 同步获取附近地理位置 37 | - (NSArray *)akCameraNeedChannels; // [[id,name], [id,name]] // 同步获取频道信息 38 | - (NSArray *)akCameraNeedBgms; // [[name, pic, path],[name, pic, path]] // 同步获取BGM信息 39 | 40 | - (void)akCameraWillFinished:(AKVideo *)video asDraft:(BOOL)asDraft; 41 | 42 | @end 43 | @interface AKCameraTool : NSObject 44 | // Parameters 45 | @property (nonatomic, assign)int maxSeconds; 46 | // Cache 47 | @property (nonatomic, strong)AKVideo *video; 48 | // Delegate 49 | @property (nonatomic, weak) id delegate; 50 | 51 | + (AKCameraTool *)shareInstance; 52 | 53 | // Start record 54 | - (void)startRecordFromController:(UIViewController *)controller; 55 | 56 | // Edit 57 | - (void)editVideo:(AKVideo *)video fromController:(UIViewController*)controller; 58 | 59 | // Cache 60 | - (void)syncDataToCache; 61 | 62 | // Notify 63 | - (void)delegateRequestLocationFinish:(NSDictionary *)location; 64 | 65 | @end 66 | 67 | #pragma mark - Private 68 | @protocol AKCameraInternalDelegate 69 | 70 | - (void)akCameraSaveWillCancel:(BOOL)saveAsDraft; // notify to clear 71 | - (void)akCameraSaveWillFinish; // notify to finish 72 | 73 | @end 74 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraVideoPreview.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraVideoPreview.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class AKCameraVideoPreview; 12 | @protocol AKCameraVideoPreviewDelegate 13 | - (void)previewVideoViewPlay:(AKCameraVideoPreview *)sender; 14 | - (void)previewVideoViewPause:(AKCameraVideoPreview *)sender; 15 | - (void)previewVideoViewStop:(AKCameraVideoPreview *)sender; 16 | @end 17 | 18 | @interface AKCameraVideoPreview : UIView 19 | @property (nonatomic, weak) id delegate; 20 | 21 | - (void)setClipImage:(UIImage *)image; 22 | - (void)play; 23 | - (void)stop; 24 | - (void)pause; 25 | - (BOOL)isPlaying; 26 | - (void)config:(NSURL *)url; 27 | - (void)observeValueForKeyPath:(NSString*) path ofObject:(id)object change:(NSDictionary*)change context:(void*)context; 28 | - (void)setVolume:(CGFloat)volume; 29 | - (void)playerReset; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKCameraViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKCameraViewController.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraNavigationBar.h" 11 | 12 | @interface AKCameraViewController : UIViewController 13 | 14 | - (void)bringNaviBarToTopmost; 15 | 16 | - (void)hideNaviBar:(BOOL)bIsHide; 17 | - (void)setNaviBarTitle:(NSString *)strTitle; 18 | - (void)setNaviBarLeftBtn:(UIButton *)btn; 19 | - (void)setNaviBarLeftBtnTitle:(NSString *)title; 20 | - (void)setNaviBarRightBtn:(UIButton *)btn; 21 | - (void)hideBottomLine; 22 | 23 | - (void)naviBarAddCoverView:(UIView *)view; 24 | - (void)naviBarAddCoverViewOnTitleView:(UIView *)view; 25 | - (void)naviBarRemoveCoverView:(UIView *)view; 26 | 27 | // 控制点击返回按钮行为 28 | - (BOOL)willGoBack; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKRecordProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKRecordProgressView.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKRecordProgressView : UIView 12 | @property (nonatomic, strong) UIColor* progressTintColor; 13 | @property (nonatomic, strong) UIColor* borderTintColor; 14 | @property (nonatomic) CGFloat progress; 15 | @property (nonatomic) CGFloat radius; 16 | @property (nonatomic) CGFloat border; 17 | 18 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated; 19 | @end 20 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AKVideo.h: -------------------------------------------------------------------------------- 1 | // 2 | // AKVideo.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-14. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AKVideo : NSObject 12 | @property (nonatomic, strong)NSString *videoFileName; // 视频文件 13 | @property (nonatomic, strong)NSString *coverFileName; // 封面文件 14 | @property (nonatomic, strong)NSDate *createTime; // 创建时间 15 | @property (nonatomic, strong)NSNumber *duration; // 持续时间 16 | @property (nonatomic, strong)NSNumber *videoFileSize; // 视频文件大小 17 | @property (nonatomic, strong)NSDictionary *location; // 地址: {province:xxx,city:xxx,district:xxx,poiName:xxx,poiAddress:xxx,lat:xxx,lng:xxx} 18 | @property (nonatomic, strong)NSNumber *coverSelectedIndex; // 选中的封面索引 19 | @property (nonatomic, strong)NSNumber *access; // 访问权限: 0 - public; 1 - private 20 | @property (nonatomic, strong)NSNumber *anonymity; // 匿名: 0 - no; 1 - yes 21 | @property (nonatomic, strong)NSString *videoDescription; // 视频描述 22 | @property (nonatomic, strong)NSArray *channel; // 频道:[id,name] 23 | 24 | // 中断拍摄可继续 25 | @property (nonatomic, strong)NSNumber *maxSeconds; // 最长拍摄时长 26 | @property (nonatomic, strong)NSMutableArray *movieFilePaths; // 分段拍摄的各个分段文件路径,用于恢复上次中断的拍摄 27 | @property (nonatomic, strong)NSMutableArray *keyFrames; // 拍摄过程提取的关键帧 28 | @property (nonatomic, strong)UIImage *defaultCover; 29 | 30 | - (void)encodeWithCoder:(NSCoder *)aCoder; 31 | - (id)initWithCoder:(NSCoder *)aDecoder; 32 | 33 | - (NSURL *)getVideoPath; 34 | - (NSURL *)getCoverPath; 35 | - (void)setVideoFilePath:(NSURL *)url; 36 | - (void)setCoverFilePath:(NSURL *)url; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AVPlayer+TrackVolume.h: -------------------------------------------------------------------------------- 1 | // 2 | // AVPlayer+TrackVolume.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AVPlayer (TrackVolume) 12 | - (void)setVolume:(float)volume; 13 | @end 14 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/AVPlayer+TrackVolume.m: -------------------------------------------------------------------------------- 1 | // 2 | // AVPlayer+TrackVolume.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "AVPlayer+TrackVolume.h" 10 | 11 | @implementation AVPlayer (TrackVolume) 12 | 13 | - (void)setVolume:(float)volume{ 14 | NSArray *audioTracks = [self.currentItem.asset tracksWithMediaType:AVMediaTypeAudio]; 15 | NSMutableArray *allAudioParams = [NSMutableArray array]; 16 | for (AVAssetTrack *track in audioTracks) { 17 | AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters]; 18 | [audioInputParams setVolume:volume atTime:kCMTimeZero]; 19 | [audioInputParams setTrackID:[track trackID]]; 20 | [allAudioParams addObject:audioInputParams]; 21 | } 22 | AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix]; 23 | [audioMix setInputParameters:allAudioParams]; 24 | [self.currentItem setAudioMix:audioMix]; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/UIImage+AKExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKExtension.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-19. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (AKExtension) 12 | 13 | /*! 14 | * @brief Resized image by given size. 15 | * @param size The size to resize. 16 | * @return An UIImage object containing a resized image from the image. 17 | * @details This method depends on CoreGraphics. 18 | */ 19 | - (UIImage *)imageByResizingToSize:(CGSize)size; 20 | 21 | /*! 22 | * @brief Color filled image with given color. 23 | * @param color The color to fill 24 | * @details This method depends on CoreGraphics. 25 | */ 26 | - (UIImage *)imageByFilledWithColor:(UIColor *)color; 27 | 28 | /*! 29 | * @brief Colored image by given size. 30 | * @param color The color to fill. 31 | * @param size The image size to create. 32 | */ 33 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size; 34 | 35 | /*! 36 | * @brief Clear colored image. 37 | */ 38 | + (UIImage *)clearImage; 39 | 40 | /*! 41 | * @brief Image drawn with bazier path. 42 | * @param path The bezier path to draw. 43 | * @param color The stroke color for bezier path. 44 | * @param backgroundColor The fill color for bezier path. 45 | */ 46 | + (UIImage *)imageWithBezierPath:(UIBezierPath *)path color:(UIColor *)color backgroundColor:(UIColor *)backgroundColor; 47 | 48 | /* 49 | * 圆角图片 50 | */ 51 | + (UIImage *)roundedImageWithSize:(CGSize)size color:(UIColor *)color radius:(CGFloat)radius; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/UIImage+AKResize.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKResize.h 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (AKResize) 12 | 13 | - (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/UIImage+AKResize.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AKResize.m 3 | // TaoVideo 4 | // 5 | // Created by lihejun on 14-3-17. 6 | // Copyright (c) 2014年 taovideo. All rights reserved. 7 | // 8 | 9 | #import "UIImage+AKResize.h" 10 | 11 | @implementation UIImage (AKResize) 12 | 13 | - (UIImage *)imageByCroppingToSize:(CGSize)size 14 | { 15 | double x = (self.size.width - size.width) / 2.0; 16 | double y = (self.size.height - size.height) / 2.0; 17 | 18 | CGRect cropRect = CGRectMake(x, y, size.height, size.width); 19 | CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], cropRect); 20 | 21 | UIImage *cropped = [UIImage imageWithCGImage:imageRef]; 22 | CGImageRelease(imageRef); 23 | 24 | return cropped; 25 | } 26 | 27 | - (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize { 28 | CGSize size = self.size; 29 | if (size.width == targetSize.width && size.height == targetSize.height) { 30 | return self; 31 | } 32 | 33 | CGFloat scale = [[UIScreen mainScreen] scale]; 34 | if (scale == 2.0f) { 35 | targetSize = CGSizeMake(targetSize.width * 2, targetSize.height * 2); 36 | } 37 | 38 | 39 | UIImage *squareImage = Nil; 40 | if (targetSize.width == targetSize.height && size.width != size.height) { 41 | // get center square 42 | squareImage = [self imageByCroppingToSize:CGSizeMake(size.width, size.width)]; 43 | } 44 | /* 45 | CGFloat ratio = 1; 46 | if ((size.height > targetSize.height) || (size.width > targetSize.width)) { 47 | 48 | CGFloat widthFactor = targetSize.width / size.width; 49 | CGFloat heightFactor = targetSize.height / size.height; 50 | 51 | if (widthFactor <= heightFactor) { 52 | ratio = widthFactor; 53 | } else { 54 | ratio = heightFactor; 55 | } 56 | } 57 | CGRect rect = CGRectMake(0.0, 0.0, ratio * size.width, ratio * size.height); 58 | */ 59 | CGRect rect = CGRectMake(0.0, 0.0, targetSize.width, targetSize.height); 60 | UIGraphicsBeginImageContext(rect.size); 61 | if (squareImage) { 62 | [squareImage drawInRect:rect]; 63 | } else { 64 | [self drawInRect:rect]; 65 | } 66 | UIImage *_image = UIGraphicsGetImageFromCurrentImageContext(); 67 | UIGraphicsEndImageContext(); 68 | 69 | return _image; 70 | } 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/UIImageView+AKCameraWebImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+AKCameraWebImageView.h 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AKCameraDownloader.h" 11 | 12 | @interface UIImageView (AKCameraWebImageView) 13 | 14 | - (void)setImageWithURL:(NSURL *)url; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Record/UIImageView+AKCameraWebImageView.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+AKCameraWebImageView.m 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import "UIImageView+AKCameraWebImageView.h" 10 | #import "AKCameraCache.h" 11 | 12 | @implementation UIImageView (AKCameraWebImageView) 13 | 14 | - (void)setImageWithURL:(NSURL *)url { 15 | NSData *data = [[AKCameraCache shareInstance] dataFromKey:[url absoluteString]]; 16 | if (data) { 17 | self.image = [UIImage imageWithData:data]; 18 | return; 19 | } 20 | if (url) 21 | { 22 | AKCameraDownloader *downloader = [[AKCameraDownloader alloc] init]; 23 | [downloader download:[url absoluteString] delegate:self]; 24 | } 25 | } 26 | #pragma mark - DownloaderDelegate 27 | - (void)akCameraDownloader:(AKCameraDownloader *)downloader didFinish:(NSData *)data { 28 | UIImage *img=[UIImage imageWithData:data]; 29 | self.image = img; 30 | CATransition *transition = [CATransition animation]; 31 | transition.duration = .5f; 32 | transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 33 | transition.type = kCATransitionFade; 34 | [self.layer addAnimation:transition forKey:nil]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/DT.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/DT.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/Diary.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/Diary.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/GQQ.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/GQQ.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/IBelieve.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/IBelieve.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/KN.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/KN.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/LX.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/LX.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/Summer.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/Summer.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/TheMass.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/TheMass.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/XXX.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/XXX.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm/ZG.caf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm/ZG.caf -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_0.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_0@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_1.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_10.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_10@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_10@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_1@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_2.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_2@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_3.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_3@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_4.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_4@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_5.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_5@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_6.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_6@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_6@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_7.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_7@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_8.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_8@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_8@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_9.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/Resources/bgm_cover_9@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hejun-lyne/LSCamera/c1a15f7fd7c3509e97ddecc2342427b30bed0d00/LSCameraDemo/LSCameraDemo/Resources/bgm_cover_9@2x.png -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // LSCameraDemo 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "LSCameraAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([LSCameraAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemoTests/LSCameraDemoTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.lyne.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemoTests/LSCameraDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // LSCameraDemoTests.m 3 | // LSCameraDemoTests 4 | // 5 | // Created by lihejun on 14-4-4. 6 | // Copyright (c) 2014年 hejun.lyne. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LSCameraDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation LSCameraDemoTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /LSCameraDemo/LSCameraDemoTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | LSCamera 2 | === 3 | 视频拍摄framework,支持分段拍摄和背景音乐 4 | --- 5 | [淘视频](http://gitlab.alibaba-inc.com/hejun.lhj/taovideo)使用了该framework 6 | --------------------------------------------------------------------------------