├── .gitignore ├── LICENSE ├── README.md ├── SDK ├── Device │ └── SHAudioPlayerSDK.framework │ │ ├── Headers │ │ ├── SHAudioPlayerBridge.h │ │ ├── SHAudioPlayerDelegate.h │ │ ├── SHAudioPlayerItemProtocol.h │ │ ├── SHAudioPlayerSDK-Swift.h │ │ ├── SHAudioPlayerSDK.h │ │ └── SHStreamManager.h │ │ ├── Info.plist │ │ ├── Modules │ │ ├── SHAudioPlayerSDK.swiftmodule │ │ │ ├── arm.swiftdoc │ │ │ ├── arm.swiftinterface │ │ │ ├── arm.swiftmodule │ │ │ ├── arm64-apple-ios.swiftdoc │ │ │ ├── arm64-apple-ios.swiftinterface │ │ │ ├── arm64-apple-ios.swiftmodule │ │ │ ├── arm64.swiftdoc │ │ │ ├── arm64.swiftinterface │ │ │ ├── arm64.swiftmodule │ │ │ ├── armv7-apple-ios.swiftdoc │ │ │ ├── armv7-apple-ios.swiftinterface │ │ │ ├── armv7-apple-ios.swiftmodule │ │ │ ├── armv7.swiftdoc │ │ │ ├── armv7.swiftinterface │ │ │ └── armv7.swiftmodule │ │ └── module.modulemap │ │ └── SHAudioPlayerSDK └── Simulator │ └── SHAudioPlayerSDK.framework │ ├── Headers │ ├── SHAudioPlayerBridge.h │ ├── SHAudioPlayerDelegate.h │ ├── SHAudioPlayerItemProtocol.h │ ├── SHAudioPlayerSDK-Swift.h │ ├── SHAudioPlayerSDK.h │ └── SHStreamManager.h │ ├── Info.plist │ ├── Modules │ ├── SHAudioPlayerSDK.swiftmodule │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ ├── x86_64-apple-ios-simulator.swiftinterface │ │ ├── x86_64-apple-ios-simulator.swiftmodule │ │ ├── x86_64.swiftdoc │ │ ├── x86_64.swiftinterface │ │ └── x86_64.swiftmodule │ └── module.modulemap │ ├── SHAudioPlayerSDK │ └── _CodeSignature │ └── CodeResources ├── SHAudioPlayerSDK.framework ├── Headers │ ├── SHAudioPlayerBridge.h │ ├── SHAudioPlayerDelegate.h │ ├── SHAudioPlayerItemProtocol.h │ ├── SHAudioPlayerSDK-Swift.h │ ├── SHAudioPlayerSDK.h │ └── SHStreamManager.h ├── Info.plist ├── Modules │ ├── SHAudioPlayerSDK.swiftmodule │ │ ├── arm.swiftdoc │ │ ├── arm.swiftinterface │ │ ├── arm.swiftmodule │ │ ├── arm64-apple-ios.swiftdoc │ │ ├── arm64-apple-ios.swiftinterface │ │ ├── arm64-apple-ios.swiftmodule │ │ ├── arm64.swiftdoc │ │ ├── arm64.swiftinterface │ │ ├── arm64.swiftmodule │ │ ├── armv7-apple-ios.swiftdoc │ │ ├── armv7-apple-ios.swiftinterface │ │ ├── armv7-apple-ios.swiftmodule │ │ ├── armv7.swiftdoc │ │ ├── armv7.swiftinterface │ │ └── armv7.swiftmodule │ └── module.modulemap └── SHAudioPlayerSDK ├── SHAudioPlayerSample.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── shanmugarajp.xcuserdatad │ │ └── UserInterfaceState.xcuserstate ├── xcshareddata │ └── xcschemes │ │ └── SHAudioPlayerSample.xcscheme └── xcuserdata │ └── shanmugarajp.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ └── xcschememanagement.plist └── SHAudioPlayerSample ├── AppDelegate.swift ├── Base.lproj ├── LaunchScreen.storyboard └── Main.storyboard ├── Info.plist ├── MySongObj.swift ├── SHAudioPlayerSampleAssets.xcassets ├── AppIcon.appiconset │ └── Contents.json ├── Contents.json └── MusicImg.imageset │ ├── Contents.json │ └── MusicImage.png ├── ViewController.swift └── system_alerts_melodic_01.mp3 /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xccheckout 23 | *.xcscmblueprint 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | *.ipa 28 | *.dSYM.zip 29 | *.dSYM 30 | 31 | ## Playgrounds 32 | timeline.xctimeline 33 | playground.xcworkspace 34 | 35 | # Swift Package Manager 36 | # 37 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 38 | # Packages/ 39 | # Package.pins 40 | # Package.resolved 41 | .build/ 42 | 43 | # CocoaPods 44 | # 45 | # We recommend against adding the Pods directory to your .gitignore. However 46 | # you should judge for yourself, the pros and cons are mentioned at: 47 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 48 | # 49 | Pods/ 50 | 51 | # Carthage 52 | # 53 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 54 | Carthage/Checkouts 55 | 56 | Carthage/Build 57 | 58 | # fastlane 59 | # 60 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 61 | # screenshots whenever they are needed. 62 | # For more information about the recommended setup visit: 63 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 64 | 65 | fastlane/report.xml 66 | fastlane/Preview.html 67 | fastlane/screenshots 68 | fastlane/test_output 69 | .DS_Store 70 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Shebin Koshy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SHAudioPlayer 2 | [#audioplayer](https://github.com/topics/audioplayer) 3 | [#mp3player](https://github.com/topics/mp3player) 4 | [#HLS](https://github.com/topics/hls) 5 | [#livestream](https://github.com/topics/livestream) 6 | [#audiostream](https://github.com/topics/audiostream) 7 | [#radio](https://github.com/topics/radio) 8 | [#radioplayer](https://github.com/topics/radioplayer) 9 | [#musicplayer](https://github.com/topics/musicplayer) 10 | [#musicstream](https://github.com/topics/musicstream) 11 | [#objective-c](https://github.com/topics/objective-c) 12 | [#swift](https://github.com/topics/swift) 13 | [#swift5](https://github.com/topics/swift5) 14 | [#iOS](https://github.com/topics/ios) 15 | 16 | Contact the development team: [![Join the chat at https://gitter.im/iOS-objectiveC-swift/iOSsupport](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/iOS-objectiveC-swift/iOSsupport?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 17 | 18 | ### AudioPlayer supports 19 | * Live audio streaming 20 | * HLS/m3u8/m3u audio streaming 21 | * Play from local audio file 22 | * Supports many audio codecs incluing mp3 & m4a 23 | * Swift 5 24 | * ~~Objective-C~~ 25 | * iOS 9 and above 26 | * Manages playlist 27 | 28 | 29 | ### Provided code for 30 | * Audio interruptions handling 31 | * Background play 32 | * Actions from Control Center/EarPods 33 | * Update UI in Control Center 34 | 35 | 36 | ### How to use? 37 | Drag and drop SDK in your project. 38 | 39 | Create song object 40 | ``` 41 | let song = MySongObj()//MySongObj is your class which implements SHAudioPlayerItemProtocol 42 | song.songUrl = your song URL 43 | song.albumArtImage = UIImage(named: "MusicImg")//Optional album art image. Also support url, provided code in MySongObj class. 44 | ``` 45 | Setup playlist 46 | ``` 47 | let arSongs = [song]//Playlist 48 | SHAudioPlayer.shared.initialize(songsAr: arSongs) 49 | ``` 50 | Play 51 | ``` 52 | SHAudioPlayer.shared.play(atIndex: 0) 53 | ``` 54 | 55 | For more details, please look `ViewController.swift` in sample project. 56 | 57 | Note: At present we are providing two SDK, one is specifically for real device and another one is specifically for simulator. You can find both inside SDK folder. 58 | 59 | 60 | #### On request features will be added. 61 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerBridge.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerBridge.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 23/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import "SHStreamManager.h" 10 | #import "SHAudioPlayerItemProtocol.h" 11 | #import "SHAudioPlayerDelegate.h" 12 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerDelegate.h 3 | // SHAudioPlayerSDK 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | @class SHAudioPlayer; 10 | @protocol SHAudioPlayerItemProtocol; 11 | @protocol SHAudioPlayerDelegate 12 | 13 | -(void)shAudioPlayerItemDidChanged:(SHAudioPlayer*)shAudioPlayer; 14 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer updateCurrentItemTitle:(NSString*)title; 15 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer updateSliderValue:(CGFloat)value currentTime:(double)currentTime duration:(double)duration; 16 | -(void)shAudioPlayerStatusDidChanged:(SHAudioPlayer*)shAudioPlayer; 17 | -(void)shAudioPlayerResetDurationUI:(SHAudioPlayer*)shAudioPlayer; 18 | -(void)shAudioPlayerUpdateInfoCenter:(SHAudioPlayer*)shAudioPlayer; 19 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer didEndCurrentItem:(id)item; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerItemProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerItemProtocol.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | @protocol SHAudioPlayerItemProtocol 10 | @property(nonatomic,strong) NSString *uniqueId; 11 | @property(nonatomic,strong) NSURL *songUrl; 12 | @property(nonatomic,strong) UIImage *albumArtImage; 13 | -(NSString*)titleToDisplay; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerSDK-Swift.h: -------------------------------------------------------------------------------- 1 | #if 0 2 | #elif defined(__arm64__) && __arm64__ 3 | // Generated by Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 4 | #pragma clang diagnostic push 5 | #pragma clang diagnostic ignored "-Wgcc-compat" 6 | 7 | #if !defined(__has_include) 8 | # define __has_include(x) 0 9 | #endif 10 | #if !defined(__has_attribute) 11 | # define __has_attribute(x) 0 12 | #endif 13 | #if !defined(__has_feature) 14 | # define __has_feature(x) 0 15 | #endif 16 | #if !defined(__has_warning) 17 | # define __has_warning(x) 0 18 | #endif 19 | 20 | #if __has_include() 21 | # include 22 | #endif 23 | 24 | #pragma clang diagnostic ignored "-Wauto-import" 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | #if !defined(SWIFT_TYPEDEFS) 31 | # define SWIFT_TYPEDEFS 1 32 | # if __has_include() 33 | # include 34 | # elif !defined(__cplusplus) 35 | typedef uint_least16_t char16_t; 36 | typedef uint_least32_t char32_t; 37 | # endif 38 | typedef float swift_float2 __attribute__((__ext_vector_type__(2))); 39 | typedef float swift_float3 __attribute__((__ext_vector_type__(3))); 40 | typedef float swift_float4 __attribute__((__ext_vector_type__(4))); 41 | typedef double swift_double2 __attribute__((__ext_vector_type__(2))); 42 | typedef double swift_double3 __attribute__((__ext_vector_type__(3))); 43 | typedef double swift_double4 __attribute__((__ext_vector_type__(4))); 44 | typedef int swift_int2 __attribute__((__ext_vector_type__(2))); 45 | typedef int swift_int3 __attribute__((__ext_vector_type__(3))); 46 | typedef int swift_int4 __attribute__((__ext_vector_type__(4))); 47 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); 48 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); 49 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); 50 | #endif 51 | 52 | #if !defined(SWIFT_PASTE) 53 | # define SWIFT_PASTE_HELPER(x, y) x##y 54 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) 55 | #endif 56 | #if !defined(SWIFT_METATYPE) 57 | # define SWIFT_METATYPE(X) Class 58 | #endif 59 | #if !defined(SWIFT_CLASS_PROPERTY) 60 | # if __has_feature(objc_class_property) 61 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ 62 | # else 63 | # define SWIFT_CLASS_PROPERTY(...) 64 | # endif 65 | #endif 66 | 67 | #if __has_attribute(objc_runtime_name) 68 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) 69 | #else 70 | # define SWIFT_RUNTIME_NAME(X) 71 | #endif 72 | #if __has_attribute(swift_name) 73 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) 74 | #else 75 | # define SWIFT_COMPILE_NAME(X) 76 | #endif 77 | #if __has_attribute(objc_method_family) 78 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) 79 | #else 80 | # define SWIFT_METHOD_FAMILY(X) 81 | #endif 82 | #if __has_attribute(noescape) 83 | # define SWIFT_NOESCAPE __attribute__((noescape)) 84 | #else 85 | # define SWIFT_NOESCAPE 86 | #endif 87 | #if __has_attribute(warn_unused_result) 88 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 89 | #else 90 | # define SWIFT_WARN_UNUSED_RESULT 91 | #endif 92 | #if __has_attribute(noreturn) 93 | # define SWIFT_NORETURN __attribute__((noreturn)) 94 | #else 95 | # define SWIFT_NORETURN 96 | #endif 97 | #if !defined(SWIFT_CLASS_EXTRA) 98 | # define SWIFT_CLASS_EXTRA 99 | #endif 100 | #if !defined(SWIFT_PROTOCOL_EXTRA) 101 | # define SWIFT_PROTOCOL_EXTRA 102 | #endif 103 | #if !defined(SWIFT_ENUM_EXTRA) 104 | # define SWIFT_ENUM_EXTRA 105 | #endif 106 | #if !defined(SWIFT_CLASS) 107 | # if __has_attribute(objc_subclassing_restricted) 108 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA 109 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 110 | # else 111 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 112 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 113 | # endif 114 | #endif 115 | #if !defined(SWIFT_RESILIENT_CLASS) 116 | # if __has_attribute(objc_class_stub) 117 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) 118 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) 119 | # else 120 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) 121 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) 122 | # endif 123 | #endif 124 | 125 | #if !defined(SWIFT_PROTOCOL) 126 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 127 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 128 | #endif 129 | 130 | #if !defined(SWIFT_EXTENSION) 131 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) 132 | #endif 133 | 134 | #if !defined(OBJC_DESIGNATED_INITIALIZER) 135 | # if __has_attribute(objc_designated_initializer) 136 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) 137 | # else 138 | # define OBJC_DESIGNATED_INITIALIZER 139 | # endif 140 | #endif 141 | #if !defined(SWIFT_ENUM_ATTR) 142 | # if defined(__has_attribute) && __has_attribute(enum_extensibility) 143 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) 144 | # else 145 | # define SWIFT_ENUM_ATTR(_extensibility) 146 | # endif 147 | #endif 148 | #if !defined(SWIFT_ENUM) 149 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 150 | # if __has_feature(generalized_swift_name) 151 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 152 | # else 153 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) 154 | # endif 155 | #endif 156 | #if !defined(SWIFT_UNAVAILABLE) 157 | # define SWIFT_UNAVAILABLE __attribute__((unavailable)) 158 | #endif 159 | #if !defined(SWIFT_UNAVAILABLE_MSG) 160 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) 161 | #endif 162 | #if !defined(SWIFT_AVAILABILITY) 163 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) 164 | #endif 165 | #if !defined(SWIFT_WEAK_IMPORT) 166 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import)) 167 | #endif 168 | #if !defined(SWIFT_DEPRECATED) 169 | # define SWIFT_DEPRECATED __attribute__((deprecated)) 170 | #endif 171 | #if !defined(SWIFT_DEPRECATED_MSG) 172 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) 173 | #endif 174 | #if __has_feature(attribute_diagnose_if_objc) 175 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) 176 | #else 177 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) 178 | #endif 179 | #if !defined(IBSegueAction) 180 | # define IBSegueAction 181 | #endif 182 | #if __has_feature(modules) 183 | #if __has_warning("-Watimport-in-framework-header") 184 | #pragma clang diagnostic ignored "-Watimport-in-framework-header" 185 | #endif 186 | @import Foundation; 187 | @import ObjectiveC; 188 | #endif 189 | 190 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" 191 | #pragma clang diagnostic ignored "-Wduplicate-method-arg" 192 | #if __has_warning("-Wpragma-clang-attribute") 193 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute" 194 | #endif 195 | #pragma clang diagnostic ignored "-Wunknown-pragmas" 196 | #pragma clang diagnostic ignored "-Wnullability" 197 | 198 | #if __has_attribute(external_source_symbol) 199 | # pragma push_macro("any") 200 | # undef any 201 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SHAudioPlayerSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) 202 | # pragma pop_macro("any") 203 | #endif 204 | 205 | 206 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK13SHAudioPlayer") 207 | @interface SHAudioPlayer : NSObject 208 | - (nonnull instancetype)init SWIFT_UNAVAILABLE; 209 | + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); 210 | @end 211 | 212 | @protocol SHAudioPlayerPrivateProtocol; 213 | @protocol SHAudioPlayerItemProtocol; 214 | 215 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateDelegate_") 216 | @protocol SHAudioPlayerPrivateDelegate 217 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 218 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 219 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 220 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 221 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 222 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 223 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 224 | @end 225 | 226 | 227 | @interface SHAudioPlayer (SWIFT_EXTENSION(SHAudioPlayerSDK)) 228 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 229 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 230 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 231 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 232 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 233 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 234 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 235 | @end 236 | 237 | 238 | @class UISlider; 239 | 240 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateProtocol_") 241 | @protocol SHAudioPlayerPrivateProtocol 242 | @property (nonatomic, weak) id _Nullable delegate; 243 | - (BOOL)isReady SWIFT_WARN_UNUSED_RESULT; 244 | - (BOOL)isLoading SWIFT_WARN_UNUSED_RESULT; 245 | - (BOOL)isPlaying SWIFT_WARN_UNUSED_RESULT; 246 | - (BOOL)isPaused SWIFT_WARN_UNUSED_RESULT; 247 | - (float)volume SWIFT_WARN_UNUSED_RESULT; 248 | - (NSString * _Nullable)currentSongTitle SWIFT_WARN_UNUSED_RESULT; 249 | - (void)sliderValueChangedWithSlider:(UISlider * _Nonnull)slider; 250 | - (void)previous; 251 | - (void)next; 252 | - (void)playAtIndex:(NSInteger)atIndex; 253 | - (void)playPauseAction; 254 | - (void)stop; 255 | - (void)pause; 256 | - (void)resume; 257 | - (NSURL * _Nullable)currentSongUrl SWIFT_WARN_UNUSED_RESULT; 258 | - (BOOL)isAlbumLoaded SWIFT_WARN_UNUSED_RESULT; 259 | - (NSArray * _Nullable)currentUrls SWIFT_WARN_UNUSED_RESULT; 260 | - (id _Nullable)currentPlayerItem SWIFT_WARN_UNUSED_RESULT; 261 | - (double)duration SWIFT_WARN_UNUSED_RESULT; 262 | - (double)progress SWIFT_WARN_UNUSED_RESULT; 263 | @end 264 | 265 | 266 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK10SHPlayList") 267 | @interface SHPlayList : NSObject 268 | SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SHPlayList * _Nonnull shared;) 269 | + (SHPlayList * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; 270 | - (NSArray> * _Nullable)playListArray SWIFT_WARN_UNUSED_RESULT; 271 | - (NSInteger)indexOfSongWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 272 | - (id _Nullable)songFromIndexWithIndex:(NSInteger)index SWIFT_WARN_UNUSED_RESULT; 273 | - (NSInteger)count SWIFT_WARN_UNUSED_RESULT; 274 | - (void)setupSongsWithSongs:(NSArray> * _Nonnull)songs; 275 | - (NSArray * _Nullable)songUrls SWIFT_WARN_UNUSED_RESULT; 276 | - (id _Nullable)songFromUrlWithUrl:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; 277 | - (id _Nullable)nextSong:(id _Nullable)currentItem SWIFT_WARN_UNUSED_RESULT; 278 | - (id _Nullable)prevSong SWIFT_WARN_UNUSED_RESULT; 279 | - (BOOL)isHLSWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 280 | - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 281 | @end 282 | 283 | #if __has_attribute(external_source_symbol) 284 | # pragma clang attribute pop 285 | #endif 286 | #pragma clang diagnostic pop 287 | 288 | #elif defined(__ARM_ARCH_7A__) && __ARM_ARCH_7A__ 289 | // Generated by Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 290 | #pragma clang diagnostic push 291 | #pragma clang diagnostic ignored "-Wgcc-compat" 292 | 293 | #if !defined(__has_include) 294 | # define __has_include(x) 0 295 | #endif 296 | #if !defined(__has_attribute) 297 | # define __has_attribute(x) 0 298 | #endif 299 | #if !defined(__has_feature) 300 | # define __has_feature(x) 0 301 | #endif 302 | #if !defined(__has_warning) 303 | # define __has_warning(x) 0 304 | #endif 305 | 306 | #if __has_include() 307 | # include 308 | #endif 309 | 310 | #pragma clang diagnostic ignored "-Wauto-import" 311 | #include 312 | #include 313 | #include 314 | #include 315 | 316 | #if !defined(SWIFT_TYPEDEFS) 317 | # define SWIFT_TYPEDEFS 1 318 | # if __has_include() 319 | # include 320 | # elif !defined(__cplusplus) 321 | typedef uint_least16_t char16_t; 322 | typedef uint_least32_t char32_t; 323 | # endif 324 | typedef float swift_float2 __attribute__((__ext_vector_type__(2))); 325 | typedef float swift_float3 __attribute__((__ext_vector_type__(3))); 326 | typedef float swift_float4 __attribute__((__ext_vector_type__(4))); 327 | typedef double swift_double2 __attribute__((__ext_vector_type__(2))); 328 | typedef double swift_double3 __attribute__((__ext_vector_type__(3))); 329 | typedef double swift_double4 __attribute__((__ext_vector_type__(4))); 330 | typedef int swift_int2 __attribute__((__ext_vector_type__(2))); 331 | typedef int swift_int3 __attribute__((__ext_vector_type__(3))); 332 | typedef int swift_int4 __attribute__((__ext_vector_type__(4))); 333 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); 334 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); 335 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); 336 | #endif 337 | 338 | #if !defined(SWIFT_PASTE) 339 | # define SWIFT_PASTE_HELPER(x, y) x##y 340 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) 341 | #endif 342 | #if !defined(SWIFT_METATYPE) 343 | # define SWIFT_METATYPE(X) Class 344 | #endif 345 | #if !defined(SWIFT_CLASS_PROPERTY) 346 | # if __has_feature(objc_class_property) 347 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ 348 | # else 349 | # define SWIFT_CLASS_PROPERTY(...) 350 | # endif 351 | #endif 352 | 353 | #if __has_attribute(objc_runtime_name) 354 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) 355 | #else 356 | # define SWIFT_RUNTIME_NAME(X) 357 | #endif 358 | #if __has_attribute(swift_name) 359 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) 360 | #else 361 | # define SWIFT_COMPILE_NAME(X) 362 | #endif 363 | #if __has_attribute(objc_method_family) 364 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) 365 | #else 366 | # define SWIFT_METHOD_FAMILY(X) 367 | #endif 368 | #if __has_attribute(noescape) 369 | # define SWIFT_NOESCAPE __attribute__((noescape)) 370 | #else 371 | # define SWIFT_NOESCAPE 372 | #endif 373 | #if __has_attribute(warn_unused_result) 374 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 375 | #else 376 | # define SWIFT_WARN_UNUSED_RESULT 377 | #endif 378 | #if __has_attribute(noreturn) 379 | # define SWIFT_NORETURN __attribute__((noreturn)) 380 | #else 381 | # define SWIFT_NORETURN 382 | #endif 383 | #if !defined(SWIFT_CLASS_EXTRA) 384 | # define SWIFT_CLASS_EXTRA 385 | #endif 386 | #if !defined(SWIFT_PROTOCOL_EXTRA) 387 | # define SWIFT_PROTOCOL_EXTRA 388 | #endif 389 | #if !defined(SWIFT_ENUM_EXTRA) 390 | # define SWIFT_ENUM_EXTRA 391 | #endif 392 | #if !defined(SWIFT_CLASS) 393 | # if __has_attribute(objc_subclassing_restricted) 394 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA 395 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 396 | # else 397 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 398 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 399 | # endif 400 | #endif 401 | #if !defined(SWIFT_RESILIENT_CLASS) 402 | # if __has_attribute(objc_class_stub) 403 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) 404 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) 405 | # else 406 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) 407 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) 408 | # endif 409 | #endif 410 | 411 | #if !defined(SWIFT_PROTOCOL) 412 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 413 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 414 | #endif 415 | 416 | #if !defined(SWIFT_EXTENSION) 417 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) 418 | #endif 419 | 420 | #if !defined(OBJC_DESIGNATED_INITIALIZER) 421 | # if __has_attribute(objc_designated_initializer) 422 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) 423 | # else 424 | # define OBJC_DESIGNATED_INITIALIZER 425 | # endif 426 | #endif 427 | #if !defined(SWIFT_ENUM_ATTR) 428 | # if defined(__has_attribute) && __has_attribute(enum_extensibility) 429 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) 430 | # else 431 | # define SWIFT_ENUM_ATTR(_extensibility) 432 | # endif 433 | #endif 434 | #if !defined(SWIFT_ENUM) 435 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 436 | # if __has_feature(generalized_swift_name) 437 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 438 | # else 439 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) 440 | # endif 441 | #endif 442 | #if !defined(SWIFT_UNAVAILABLE) 443 | # define SWIFT_UNAVAILABLE __attribute__((unavailable)) 444 | #endif 445 | #if !defined(SWIFT_UNAVAILABLE_MSG) 446 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) 447 | #endif 448 | #if !defined(SWIFT_AVAILABILITY) 449 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) 450 | #endif 451 | #if !defined(SWIFT_WEAK_IMPORT) 452 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import)) 453 | #endif 454 | #if !defined(SWIFT_DEPRECATED) 455 | # define SWIFT_DEPRECATED __attribute__((deprecated)) 456 | #endif 457 | #if !defined(SWIFT_DEPRECATED_MSG) 458 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) 459 | #endif 460 | #if __has_feature(attribute_diagnose_if_objc) 461 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) 462 | #else 463 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) 464 | #endif 465 | #if !defined(IBSegueAction) 466 | # define IBSegueAction 467 | #endif 468 | #if __has_feature(modules) 469 | #if __has_warning("-Watimport-in-framework-header") 470 | #pragma clang diagnostic ignored "-Watimport-in-framework-header" 471 | #endif 472 | @import Foundation; 473 | @import ObjectiveC; 474 | #endif 475 | 476 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" 477 | #pragma clang diagnostic ignored "-Wduplicate-method-arg" 478 | #if __has_warning("-Wpragma-clang-attribute") 479 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute" 480 | #endif 481 | #pragma clang diagnostic ignored "-Wunknown-pragmas" 482 | #pragma clang diagnostic ignored "-Wnullability" 483 | 484 | #if __has_attribute(external_source_symbol) 485 | # pragma push_macro("any") 486 | # undef any 487 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SHAudioPlayerSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) 488 | # pragma pop_macro("any") 489 | #endif 490 | 491 | 492 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK13SHAudioPlayer") 493 | @interface SHAudioPlayer : NSObject 494 | - (nonnull instancetype)init SWIFT_UNAVAILABLE; 495 | + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); 496 | @end 497 | 498 | @protocol SHAudioPlayerPrivateProtocol; 499 | @protocol SHAudioPlayerItemProtocol; 500 | 501 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateDelegate_") 502 | @protocol SHAudioPlayerPrivateDelegate 503 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 504 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 505 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 506 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 507 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 508 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 509 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 510 | @end 511 | 512 | 513 | @interface SHAudioPlayer (SWIFT_EXTENSION(SHAudioPlayerSDK)) 514 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 515 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 516 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 517 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 518 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 519 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 520 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 521 | @end 522 | 523 | 524 | @class UISlider; 525 | 526 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateProtocol_") 527 | @protocol SHAudioPlayerPrivateProtocol 528 | @property (nonatomic, weak) id _Nullable delegate; 529 | - (BOOL)isReady SWIFT_WARN_UNUSED_RESULT; 530 | - (BOOL)isLoading SWIFT_WARN_UNUSED_RESULT; 531 | - (BOOL)isPlaying SWIFT_WARN_UNUSED_RESULT; 532 | - (BOOL)isPaused SWIFT_WARN_UNUSED_RESULT; 533 | - (float)volume SWIFT_WARN_UNUSED_RESULT; 534 | - (NSString * _Nullable)currentSongTitle SWIFT_WARN_UNUSED_RESULT; 535 | - (void)sliderValueChangedWithSlider:(UISlider * _Nonnull)slider; 536 | - (void)previous; 537 | - (void)next; 538 | - (void)playAtIndex:(NSInteger)atIndex; 539 | - (void)playPauseAction; 540 | - (void)stop; 541 | - (void)pause; 542 | - (void)resume; 543 | - (NSURL * _Nullable)currentSongUrl SWIFT_WARN_UNUSED_RESULT; 544 | - (BOOL)isAlbumLoaded SWIFT_WARN_UNUSED_RESULT; 545 | - (NSArray * _Nullable)currentUrls SWIFT_WARN_UNUSED_RESULT; 546 | - (id _Nullable)currentPlayerItem SWIFT_WARN_UNUSED_RESULT; 547 | - (double)duration SWIFT_WARN_UNUSED_RESULT; 548 | - (double)progress SWIFT_WARN_UNUSED_RESULT; 549 | @end 550 | 551 | 552 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK10SHPlayList") 553 | @interface SHPlayList : NSObject 554 | SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SHPlayList * _Nonnull shared;) 555 | + (SHPlayList * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; 556 | - (NSArray> * _Nullable)playListArray SWIFT_WARN_UNUSED_RESULT; 557 | - (NSInteger)indexOfSongWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 558 | - (id _Nullable)songFromIndexWithIndex:(NSInteger)index SWIFT_WARN_UNUSED_RESULT; 559 | - (NSInteger)count SWIFT_WARN_UNUSED_RESULT; 560 | - (void)setupSongsWithSongs:(NSArray> * _Nonnull)songs; 561 | - (NSArray * _Nullable)songUrls SWIFT_WARN_UNUSED_RESULT; 562 | - (id _Nullable)songFromUrlWithUrl:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; 563 | - (id _Nullable)nextSong:(id _Nullable)currentItem SWIFT_WARN_UNUSED_RESULT; 564 | - (id _Nullable)prevSong SWIFT_WARN_UNUSED_RESULT; 565 | - (BOOL)isHLSWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 566 | - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 567 | @end 568 | 569 | #if __has_attribute(external_source_symbol) 570 | # pragma clang attribute pop 571 | #endif 572 | #pragma clang diagnostic pop 573 | 574 | #endif 575 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerSDK.h 3 | // SHAudioPlayerSDK 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SHAudioPlayerSDK. 12 | FOUNDATION_EXPORT double SHAudioPlayerSDKVersionNumber; 13 | 14 | //! Project version string for SHAudioPlayerSDK. 15 | FOUNDATION_EXPORT const unsigned char SHAudioPlayerSDKVersionString[]; 16 | 17 | #import 18 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Headers/SHStreamManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHStreamManager.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 10/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import 10 | @protocol SHAudioPlayerPrivateDelegate; 11 | @protocol SHAudioPlayerPrivateProtocol; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | @interface SHStreamManager : NSObject 15 | 16 | @property (readwrite, unsafe_unretained) id delegate; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Info.plist -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftdoc -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftmodule -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target arm64-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target arm64-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftdoc -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftmodule -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftdoc -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftmodule -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module SHAudioPlayerSDK { 2 | umbrella header "SHAudioPlayerSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module SHAudioPlayerSDK.Swift { 9 | header "SHAudioPlayerSDK-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /SDK/Device/SHAudioPlayerSDK.framework/SHAudioPlayerSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Device/SHAudioPlayerSDK.framework/SHAudioPlayerSDK -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerBridge.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerBridge.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 23/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import "SHStreamManager.h" 10 | #import "SHAudioPlayerItemProtocol.h" 11 | #import "SHAudioPlayerDelegate.h" 12 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerDelegate.h 3 | // SHAudioPlayerSDK 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | @class SHAudioPlayer; 10 | @protocol SHAudioPlayerItemProtocol; 11 | @protocol SHAudioPlayerDelegate 12 | 13 | -(void)shAudioPlayerItemDidChanged:(SHAudioPlayer*)shAudioPlayer; 14 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer updateCurrentItemTitle:(NSString*)title; 15 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer updateSliderValue:(CGFloat)value currentTime:(double)currentTime duration:(double)duration; 16 | -(void)shAudioPlayerStatusDidChanged:(SHAudioPlayer*)shAudioPlayer; 17 | -(void)shAudioPlayerResetDurationUI:(SHAudioPlayer*)shAudioPlayer; 18 | -(void)shAudioPlayerUpdateInfoCenter:(SHAudioPlayer*)shAudioPlayer; 19 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer didEndCurrentItem:(id)item; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerItemProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerItemProtocol.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | @protocol SHAudioPlayerItemProtocol 10 | @property(nonatomic,strong) NSString *uniqueId; 11 | @property(nonatomic,strong) NSURL *songUrl; 12 | @property(nonatomic,strong) UIImage *albumArtImage; 13 | -(NSString*)titleToDisplay; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerSDK-Swift.h: -------------------------------------------------------------------------------- 1 | // Generated by Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 2 | #pragma clang diagnostic push 3 | #pragma clang diagnostic ignored "-Wgcc-compat" 4 | 5 | #if !defined(__has_include) 6 | # define __has_include(x) 0 7 | #endif 8 | #if !defined(__has_attribute) 9 | # define __has_attribute(x) 0 10 | #endif 11 | #if !defined(__has_feature) 12 | # define __has_feature(x) 0 13 | #endif 14 | #if !defined(__has_warning) 15 | # define __has_warning(x) 0 16 | #endif 17 | 18 | #if __has_include() 19 | # include 20 | #endif 21 | 22 | #pragma clang diagnostic ignored "-Wauto-import" 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | #if !defined(SWIFT_TYPEDEFS) 29 | # define SWIFT_TYPEDEFS 1 30 | # if __has_include() 31 | # include 32 | # elif !defined(__cplusplus) 33 | typedef uint_least16_t char16_t; 34 | typedef uint_least32_t char32_t; 35 | # endif 36 | typedef float swift_float2 __attribute__((__ext_vector_type__(2))); 37 | typedef float swift_float3 __attribute__((__ext_vector_type__(3))); 38 | typedef float swift_float4 __attribute__((__ext_vector_type__(4))); 39 | typedef double swift_double2 __attribute__((__ext_vector_type__(2))); 40 | typedef double swift_double3 __attribute__((__ext_vector_type__(3))); 41 | typedef double swift_double4 __attribute__((__ext_vector_type__(4))); 42 | typedef int swift_int2 __attribute__((__ext_vector_type__(2))); 43 | typedef int swift_int3 __attribute__((__ext_vector_type__(3))); 44 | typedef int swift_int4 __attribute__((__ext_vector_type__(4))); 45 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); 46 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); 47 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); 48 | #endif 49 | 50 | #if !defined(SWIFT_PASTE) 51 | # define SWIFT_PASTE_HELPER(x, y) x##y 52 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) 53 | #endif 54 | #if !defined(SWIFT_METATYPE) 55 | # define SWIFT_METATYPE(X) Class 56 | #endif 57 | #if !defined(SWIFT_CLASS_PROPERTY) 58 | # if __has_feature(objc_class_property) 59 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ 60 | # else 61 | # define SWIFT_CLASS_PROPERTY(...) 62 | # endif 63 | #endif 64 | 65 | #if __has_attribute(objc_runtime_name) 66 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) 67 | #else 68 | # define SWIFT_RUNTIME_NAME(X) 69 | #endif 70 | #if __has_attribute(swift_name) 71 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) 72 | #else 73 | # define SWIFT_COMPILE_NAME(X) 74 | #endif 75 | #if __has_attribute(objc_method_family) 76 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) 77 | #else 78 | # define SWIFT_METHOD_FAMILY(X) 79 | #endif 80 | #if __has_attribute(noescape) 81 | # define SWIFT_NOESCAPE __attribute__((noescape)) 82 | #else 83 | # define SWIFT_NOESCAPE 84 | #endif 85 | #if __has_attribute(warn_unused_result) 86 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 87 | #else 88 | # define SWIFT_WARN_UNUSED_RESULT 89 | #endif 90 | #if __has_attribute(noreturn) 91 | # define SWIFT_NORETURN __attribute__((noreturn)) 92 | #else 93 | # define SWIFT_NORETURN 94 | #endif 95 | #if !defined(SWIFT_CLASS_EXTRA) 96 | # define SWIFT_CLASS_EXTRA 97 | #endif 98 | #if !defined(SWIFT_PROTOCOL_EXTRA) 99 | # define SWIFT_PROTOCOL_EXTRA 100 | #endif 101 | #if !defined(SWIFT_ENUM_EXTRA) 102 | # define SWIFT_ENUM_EXTRA 103 | #endif 104 | #if !defined(SWIFT_CLASS) 105 | # if __has_attribute(objc_subclassing_restricted) 106 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA 107 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 108 | # else 109 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 110 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 111 | # endif 112 | #endif 113 | #if !defined(SWIFT_RESILIENT_CLASS) 114 | # if __has_attribute(objc_class_stub) 115 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) 116 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) 117 | # else 118 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) 119 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) 120 | # endif 121 | #endif 122 | 123 | #if !defined(SWIFT_PROTOCOL) 124 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 125 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 126 | #endif 127 | 128 | #if !defined(SWIFT_EXTENSION) 129 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) 130 | #endif 131 | 132 | #if !defined(OBJC_DESIGNATED_INITIALIZER) 133 | # if __has_attribute(objc_designated_initializer) 134 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) 135 | # else 136 | # define OBJC_DESIGNATED_INITIALIZER 137 | # endif 138 | #endif 139 | #if !defined(SWIFT_ENUM_ATTR) 140 | # if defined(__has_attribute) && __has_attribute(enum_extensibility) 141 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) 142 | # else 143 | # define SWIFT_ENUM_ATTR(_extensibility) 144 | # endif 145 | #endif 146 | #if !defined(SWIFT_ENUM) 147 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 148 | # if __has_feature(generalized_swift_name) 149 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 150 | # else 151 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) 152 | # endif 153 | #endif 154 | #if !defined(SWIFT_UNAVAILABLE) 155 | # define SWIFT_UNAVAILABLE __attribute__((unavailable)) 156 | #endif 157 | #if !defined(SWIFT_UNAVAILABLE_MSG) 158 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) 159 | #endif 160 | #if !defined(SWIFT_AVAILABILITY) 161 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) 162 | #endif 163 | #if !defined(SWIFT_WEAK_IMPORT) 164 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import)) 165 | #endif 166 | #if !defined(SWIFT_DEPRECATED) 167 | # define SWIFT_DEPRECATED __attribute__((deprecated)) 168 | #endif 169 | #if !defined(SWIFT_DEPRECATED_MSG) 170 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) 171 | #endif 172 | #if __has_feature(attribute_diagnose_if_objc) 173 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) 174 | #else 175 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) 176 | #endif 177 | #if !defined(IBSegueAction) 178 | # define IBSegueAction 179 | #endif 180 | #if __has_feature(modules) 181 | #if __has_warning("-Watimport-in-framework-header") 182 | #pragma clang diagnostic ignored "-Watimport-in-framework-header" 183 | #endif 184 | @import Foundation; 185 | @import ObjectiveC; 186 | #endif 187 | 188 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" 189 | #pragma clang diagnostic ignored "-Wduplicate-method-arg" 190 | #if __has_warning("-Wpragma-clang-attribute") 191 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute" 192 | #endif 193 | #pragma clang diagnostic ignored "-Wunknown-pragmas" 194 | #pragma clang diagnostic ignored "-Wnullability" 195 | 196 | #if __has_attribute(external_source_symbol) 197 | # pragma push_macro("any") 198 | # undef any 199 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SHAudioPlayerSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) 200 | # pragma pop_macro("any") 201 | #endif 202 | 203 | 204 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK13SHAudioPlayer") 205 | @interface SHAudioPlayer : NSObject 206 | - (nonnull instancetype)init SWIFT_UNAVAILABLE; 207 | + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); 208 | @end 209 | 210 | @protocol SHAudioPlayerPrivateProtocol; 211 | @protocol SHAudioPlayerItemProtocol; 212 | 213 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateDelegate_") 214 | @protocol SHAudioPlayerPrivateDelegate 215 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 216 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 217 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 218 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 219 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 220 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 221 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 222 | @end 223 | 224 | 225 | @interface SHAudioPlayer (SWIFT_EXTENSION(SHAudioPlayerSDK)) 226 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 227 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 228 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 229 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 230 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 231 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 232 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 233 | @end 234 | 235 | 236 | @class UISlider; 237 | 238 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateProtocol_") 239 | @protocol SHAudioPlayerPrivateProtocol 240 | @property (nonatomic, weak) id _Nullable delegate; 241 | - (BOOL)isReady SWIFT_WARN_UNUSED_RESULT; 242 | - (BOOL)isLoading SWIFT_WARN_UNUSED_RESULT; 243 | - (BOOL)isPlaying SWIFT_WARN_UNUSED_RESULT; 244 | - (BOOL)isPaused SWIFT_WARN_UNUSED_RESULT; 245 | - (float)volume SWIFT_WARN_UNUSED_RESULT; 246 | - (NSString * _Nullable)currentSongTitle SWIFT_WARN_UNUSED_RESULT; 247 | - (void)sliderValueChangedWithSlider:(UISlider * _Nonnull)slider; 248 | - (void)previous; 249 | - (void)next; 250 | - (void)playAtIndex:(NSInteger)atIndex; 251 | - (void)playPauseAction; 252 | - (void)stop; 253 | - (void)pause; 254 | - (void)resume; 255 | - (NSURL * _Nullable)currentSongUrl SWIFT_WARN_UNUSED_RESULT; 256 | - (BOOL)isAlbumLoaded SWIFT_WARN_UNUSED_RESULT; 257 | - (NSArray * _Nullable)currentUrls SWIFT_WARN_UNUSED_RESULT; 258 | - (id _Nullable)currentPlayerItem SWIFT_WARN_UNUSED_RESULT; 259 | - (double)duration SWIFT_WARN_UNUSED_RESULT; 260 | - (double)progress SWIFT_WARN_UNUSED_RESULT; 261 | @end 262 | 263 | 264 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK10SHPlayList") 265 | @interface SHPlayList : NSObject 266 | SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SHPlayList * _Nonnull shared;) 267 | + (SHPlayList * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; 268 | - (NSArray> * _Nullable)playListArray SWIFT_WARN_UNUSED_RESULT; 269 | - (NSInteger)indexOfSongWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 270 | - (id _Nullable)songFromIndexWithIndex:(NSInteger)index SWIFT_WARN_UNUSED_RESULT; 271 | - (NSInteger)count SWIFT_WARN_UNUSED_RESULT; 272 | - (void)setupSongsWithSongs:(NSArray> * _Nonnull)songs; 273 | - (NSArray * _Nullable)songUrls SWIFT_WARN_UNUSED_RESULT; 274 | - (id _Nullable)songFromUrlWithUrl:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; 275 | - (id _Nullable)nextSong:(id _Nullable)currentItem SWIFT_WARN_UNUSED_RESULT; 276 | - (id _Nullable)prevSong SWIFT_WARN_UNUSED_RESULT; 277 | - (BOOL)isHLSWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 278 | - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 279 | @end 280 | 281 | #if __has_attribute(external_source_symbol) 282 | # pragma clang attribute pop 283 | #endif 284 | #pragma clang diagnostic pop 285 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Headers/SHAudioPlayerSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerSDK.h 3 | // SHAudioPlayerSDK 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SHAudioPlayerSDK. 12 | FOUNDATION_EXPORT double SHAudioPlayerSDKVersionNumber; 13 | 14 | //! Project version string for SHAudioPlayerSDK. 15 | FOUNDATION_EXPORT const unsigned char SHAudioPlayerSDKVersionString[]; 16 | 17 | #import 18 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Headers/SHStreamManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHStreamManager.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 10/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import 10 | @protocol SHAudioPlayerPrivateDelegate; 11 | @protocol SHAudioPlayerPrivateProtocol; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | @interface SHStreamManager : NSObject 15 | 16 | @property (readwrite, unsafe_unretained) id delegate; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Simulator/SHAudioPlayerSDK.framework/Info.plist -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target x86_64-apple-ios9.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target x86_64-apple-ios9.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Simulator/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module SHAudioPlayerSDK { 2 | umbrella header "SHAudioPlayerSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module SHAudioPlayerSDK.Swift { 9 | header "SHAudioPlayerSDK-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/SHAudioPlayerSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SDK/Simulator/SHAudioPlayerSDK.framework/SHAudioPlayerSDK -------------------------------------------------------------------------------- /SDK/Simulator/SHAudioPlayerSDK.framework/_CodeSignature/CodeResources: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | files 6 | 7 | Headers/SHAudioPlayerBridge.h 8 | 9 | 8VN77PT24g1SpAX2oxm22CqS8H0= 10 | 11 | Headers/SHAudioPlayerDelegate.h 12 | 13 | DZade1G0bsRTFEriz9int2Fp3AI= 14 | 15 | Headers/SHAudioPlayerItemProtocol.h 16 | 17 | DBXUrVrk9IpiTK1Og4AJuHroaxY= 18 | 19 | Headers/SHAudioPlayerSDK-Swift.h 20 | 21 | qMV/1Rnzv9uFjCDDZpCrgfNMWlE= 22 | 23 | Headers/SHAudioPlayerSDK.h 24 | 25 | g8ZJ1Z4oIWmcEwwE29GZRQlrZ3w= 26 | 27 | Headers/SHStreamManager.h 28 | 29 | Ugm+/Hi47vaOTg76gEennRU+W0s= 30 | 31 | Info.plist 32 | 33 | XGwYygG8DTwjq31drgvJm98BUMc= 34 | 35 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc 36 | 37 | mMZiJPPwRWyZoQH5fwTbwjkRkRw= 38 | 39 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface 40 | 41 | j8+mGR4apADneqCxbzYBZKZH6SA= 42 | 43 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule 44 | 45 | XlUK52qsYkSUFvCUuEsbG/q+Zs8= 46 | 47 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftdoc 48 | 49 | mMZiJPPwRWyZoQH5fwTbwjkRkRw= 50 | 51 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftinterface 52 | 53 | j8+mGR4apADneqCxbzYBZKZH6SA= 54 | 55 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftmodule 56 | 57 | XlUK52qsYkSUFvCUuEsbG/q+Zs8= 58 | 59 | Modules/module.modulemap 60 | 61 | j73IMy9frO0NsvV+uK/IBgV4DFA= 62 | 63 | 64 | files2 65 | 66 | Headers/SHAudioPlayerBridge.h 67 | 68 | hash 69 | 70 | 8VN77PT24g1SpAX2oxm22CqS8H0= 71 | 72 | hash2 73 | 74 | sPANn+byGBCKvMSsjVeAAChDHgHR+9zwkN/YnaAl4RA= 75 | 76 | 77 | Headers/SHAudioPlayerDelegate.h 78 | 79 | hash 80 | 81 | DZade1G0bsRTFEriz9int2Fp3AI= 82 | 83 | hash2 84 | 85 | FQCxf5QLpXHksJYAL/0kRK7z5RhZDVTLxFg6MU2GHX8= 86 | 87 | 88 | Headers/SHAudioPlayerItemProtocol.h 89 | 90 | hash 91 | 92 | DBXUrVrk9IpiTK1Og4AJuHroaxY= 93 | 94 | hash2 95 | 96 | t4Kz3jLLTdcD1uUTvM/Dah9wdfvEDIHjMMmKeMrtHjs= 97 | 98 | 99 | Headers/SHAudioPlayerSDK-Swift.h 100 | 101 | hash 102 | 103 | qMV/1Rnzv9uFjCDDZpCrgfNMWlE= 104 | 105 | hash2 106 | 107 | yAbchbCwaYPcvnYDBX+Pf7DB3cT05j4uYUJ0rJTTVzs= 108 | 109 | 110 | Headers/SHAudioPlayerSDK.h 111 | 112 | hash 113 | 114 | g8ZJ1Z4oIWmcEwwE29GZRQlrZ3w= 115 | 116 | hash2 117 | 118 | sBy2Jf5yuDaBTSalwHnhFo2tQXWcLNIFiYW9PFnj1qs= 119 | 120 | 121 | Headers/SHStreamManager.h 122 | 123 | hash 124 | 125 | Ugm+/Hi47vaOTg76gEennRU+W0s= 126 | 127 | hash2 128 | 129 | nq0/8TBdgGWfZiTzcI+Uu3eMhNhzRsJERaRSELgZLJ0= 130 | 131 | 132 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc 133 | 134 | hash 135 | 136 | mMZiJPPwRWyZoQH5fwTbwjkRkRw= 137 | 138 | hash2 139 | 140 | 2nXO5rrfXoNof2nRUizsSvtYNUEI34DGgSRzs7gjdZs= 141 | 142 | 143 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface 144 | 145 | hash 146 | 147 | j8+mGR4apADneqCxbzYBZKZH6SA= 148 | 149 | hash2 150 | 151 | EtOrLhKPxWe8mNfZtbyoVYvbag4/7G60IPpyT0IhjaQ= 152 | 153 | 154 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule 155 | 156 | hash 157 | 158 | XlUK52qsYkSUFvCUuEsbG/q+Zs8= 159 | 160 | hash2 161 | 162 | 7xhV/834suX9YSRMX8FsQXOYTOJKz8olXuxz+H0IaRA= 163 | 164 | 165 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftdoc 166 | 167 | hash 168 | 169 | mMZiJPPwRWyZoQH5fwTbwjkRkRw= 170 | 171 | hash2 172 | 173 | 2nXO5rrfXoNof2nRUizsSvtYNUEI34DGgSRzs7gjdZs= 174 | 175 | 176 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftinterface 177 | 178 | hash 179 | 180 | j8+mGR4apADneqCxbzYBZKZH6SA= 181 | 182 | hash2 183 | 184 | EtOrLhKPxWe8mNfZtbyoVYvbag4/7G60IPpyT0IhjaQ= 185 | 186 | 187 | Modules/SHAudioPlayerSDK.swiftmodule/x86_64.swiftmodule 188 | 189 | hash 190 | 191 | XlUK52qsYkSUFvCUuEsbG/q+Zs8= 192 | 193 | hash2 194 | 195 | 7xhV/834suX9YSRMX8FsQXOYTOJKz8olXuxz+H0IaRA= 196 | 197 | 198 | Modules/module.modulemap 199 | 200 | hash 201 | 202 | j73IMy9frO0NsvV+uK/IBgV4DFA= 203 | 204 | hash2 205 | 206 | aVV1ItXcLtV/A1WLWWayuYkiolei6v8uPV9y7MWS2nM= 207 | 208 | 209 | 210 | rules 211 | 212 | ^.* 213 | 214 | ^.*\.lproj/ 215 | 216 | optional 217 | 218 | weight 219 | 1000 220 | 221 | ^.*\.lproj/locversion.plist$ 222 | 223 | omit 224 | 225 | weight 226 | 1100 227 | 228 | ^Base\.lproj/ 229 | 230 | weight 231 | 1010 232 | 233 | ^version.plist$ 234 | 235 | 236 | rules2 237 | 238 | .*\.dSYM($|/) 239 | 240 | weight 241 | 11 242 | 243 | ^(.*/)?\.DS_Store$ 244 | 245 | omit 246 | 247 | weight 248 | 2000 249 | 250 | ^.* 251 | 252 | ^.*\.lproj/ 253 | 254 | optional 255 | 256 | weight 257 | 1000 258 | 259 | ^.*\.lproj/locversion.plist$ 260 | 261 | omit 262 | 263 | weight 264 | 1100 265 | 266 | ^Base\.lproj/ 267 | 268 | weight 269 | 1010 270 | 271 | ^Info\.plist$ 272 | 273 | omit 274 | 275 | weight 276 | 20 277 | 278 | ^PkgInfo$ 279 | 280 | omit 281 | 282 | weight 283 | 20 284 | 285 | ^embedded\.provisionprofile$ 286 | 287 | weight 288 | 20 289 | 290 | ^version\.plist$ 291 | 292 | weight 293 | 20 294 | 295 | 296 | 297 | 298 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Headers/SHAudioPlayerBridge.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerBridge.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 23/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import "SHStreamManager.h" 10 | #import "SHAudioPlayerItemProtocol.h" 11 | #import "SHAudioPlayerDelegate.h" 12 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Headers/SHAudioPlayerDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerDelegate.h 3 | // SHAudioPlayerSDK 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | @class SHAudioPlayer; 10 | @protocol SHAudioPlayerItemProtocol; 11 | @protocol SHAudioPlayerDelegate 12 | 13 | -(void)shAudioPlayerItemDidChanged:(SHAudioPlayer*)shAudioPlayer; 14 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer updateCurrentItemTitle:(NSString*)title; 15 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer updateSliderValue:(CGFloat)value currentTime:(double)currentTime duration:(double)duration; 16 | -(void)shAudioPlayerStatusDidChanged:(SHAudioPlayer*)shAudioPlayer; 17 | -(void)shAudioPlayerResetDurationUI:(SHAudioPlayer*)shAudioPlayer; 18 | -(void)shAudioPlayerUpdateInfoCenter:(SHAudioPlayer*)shAudioPlayer; 19 | -(void)shAudioPlayer:(SHAudioPlayer*)shAudioPlayer didEndCurrentItem:(id)item; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Headers/SHAudioPlayerItemProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerItemProtocol.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | @protocol SHAudioPlayerItemProtocol 10 | @property(nonatomic,strong) NSString *uniqueId; 11 | @property(nonatomic,strong) NSURL *songUrl; 12 | @property(nonatomic,strong) UIImage *albumArtImage; 13 | -(NSString*)titleToDisplay; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Headers/SHAudioPlayerSDK-Swift.h: -------------------------------------------------------------------------------- 1 | #if 0 2 | #elif defined(__arm64__) && __arm64__ 3 | // Generated by Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 4 | #pragma clang diagnostic push 5 | #pragma clang diagnostic ignored "-Wgcc-compat" 6 | 7 | #if !defined(__has_include) 8 | # define __has_include(x) 0 9 | #endif 10 | #if !defined(__has_attribute) 11 | # define __has_attribute(x) 0 12 | #endif 13 | #if !defined(__has_feature) 14 | # define __has_feature(x) 0 15 | #endif 16 | #if !defined(__has_warning) 17 | # define __has_warning(x) 0 18 | #endif 19 | 20 | #if __has_include() 21 | # include 22 | #endif 23 | 24 | #pragma clang diagnostic ignored "-Wauto-import" 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | #if !defined(SWIFT_TYPEDEFS) 31 | # define SWIFT_TYPEDEFS 1 32 | # if __has_include() 33 | # include 34 | # elif !defined(__cplusplus) 35 | typedef uint_least16_t char16_t; 36 | typedef uint_least32_t char32_t; 37 | # endif 38 | typedef float swift_float2 __attribute__((__ext_vector_type__(2))); 39 | typedef float swift_float3 __attribute__((__ext_vector_type__(3))); 40 | typedef float swift_float4 __attribute__((__ext_vector_type__(4))); 41 | typedef double swift_double2 __attribute__((__ext_vector_type__(2))); 42 | typedef double swift_double3 __attribute__((__ext_vector_type__(3))); 43 | typedef double swift_double4 __attribute__((__ext_vector_type__(4))); 44 | typedef int swift_int2 __attribute__((__ext_vector_type__(2))); 45 | typedef int swift_int3 __attribute__((__ext_vector_type__(3))); 46 | typedef int swift_int4 __attribute__((__ext_vector_type__(4))); 47 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); 48 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); 49 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); 50 | #endif 51 | 52 | #if !defined(SWIFT_PASTE) 53 | # define SWIFT_PASTE_HELPER(x, y) x##y 54 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) 55 | #endif 56 | #if !defined(SWIFT_METATYPE) 57 | # define SWIFT_METATYPE(X) Class 58 | #endif 59 | #if !defined(SWIFT_CLASS_PROPERTY) 60 | # if __has_feature(objc_class_property) 61 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ 62 | # else 63 | # define SWIFT_CLASS_PROPERTY(...) 64 | # endif 65 | #endif 66 | 67 | #if __has_attribute(objc_runtime_name) 68 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) 69 | #else 70 | # define SWIFT_RUNTIME_NAME(X) 71 | #endif 72 | #if __has_attribute(swift_name) 73 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) 74 | #else 75 | # define SWIFT_COMPILE_NAME(X) 76 | #endif 77 | #if __has_attribute(objc_method_family) 78 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) 79 | #else 80 | # define SWIFT_METHOD_FAMILY(X) 81 | #endif 82 | #if __has_attribute(noescape) 83 | # define SWIFT_NOESCAPE __attribute__((noescape)) 84 | #else 85 | # define SWIFT_NOESCAPE 86 | #endif 87 | #if __has_attribute(warn_unused_result) 88 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 89 | #else 90 | # define SWIFT_WARN_UNUSED_RESULT 91 | #endif 92 | #if __has_attribute(noreturn) 93 | # define SWIFT_NORETURN __attribute__((noreturn)) 94 | #else 95 | # define SWIFT_NORETURN 96 | #endif 97 | #if !defined(SWIFT_CLASS_EXTRA) 98 | # define SWIFT_CLASS_EXTRA 99 | #endif 100 | #if !defined(SWIFT_PROTOCOL_EXTRA) 101 | # define SWIFT_PROTOCOL_EXTRA 102 | #endif 103 | #if !defined(SWIFT_ENUM_EXTRA) 104 | # define SWIFT_ENUM_EXTRA 105 | #endif 106 | #if !defined(SWIFT_CLASS) 107 | # if __has_attribute(objc_subclassing_restricted) 108 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA 109 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 110 | # else 111 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 112 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 113 | # endif 114 | #endif 115 | #if !defined(SWIFT_RESILIENT_CLASS) 116 | # if __has_attribute(objc_class_stub) 117 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) 118 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) 119 | # else 120 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) 121 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) 122 | # endif 123 | #endif 124 | 125 | #if !defined(SWIFT_PROTOCOL) 126 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 127 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 128 | #endif 129 | 130 | #if !defined(SWIFT_EXTENSION) 131 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) 132 | #endif 133 | 134 | #if !defined(OBJC_DESIGNATED_INITIALIZER) 135 | # if __has_attribute(objc_designated_initializer) 136 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) 137 | # else 138 | # define OBJC_DESIGNATED_INITIALIZER 139 | # endif 140 | #endif 141 | #if !defined(SWIFT_ENUM_ATTR) 142 | # if defined(__has_attribute) && __has_attribute(enum_extensibility) 143 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) 144 | # else 145 | # define SWIFT_ENUM_ATTR(_extensibility) 146 | # endif 147 | #endif 148 | #if !defined(SWIFT_ENUM) 149 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 150 | # if __has_feature(generalized_swift_name) 151 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 152 | # else 153 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) 154 | # endif 155 | #endif 156 | #if !defined(SWIFT_UNAVAILABLE) 157 | # define SWIFT_UNAVAILABLE __attribute__((unavailable)) 158 | #endif 159 | #if !defined(SWIFT_UNAVAILABLE_MSG) 160 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) 161 | #endif 162 | #if !defined(SWIFT_AVAILABILITY) 163 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) 164 | #endif 165 | #if !defined(SWIFT_WEAK_IMPORT) 166 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import)) 167 | #endif 168 | #if !defined(SWIFT_DEPRECATED) 169 | # define SWIFT_DEPRECATED __attribute__((deprecated)) 170 | #endif 171 | #if !defined(SWIFT_DEPRECATED_MSG) 172 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) 173 | #endif 174 | #if __has_feature(attribute_diagnose_if_objc) 175 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) 176 | #else 177 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) 178 | #endif 179 | #if !defined(IBSegueAction) 180 | # define IBSegueAction 181 | #endif 182 | #if __has_feature(modules) 183 | #if __has_warning("-Watimport-in-framework-header") 184 | #pragma clang diagnostic ignored "-Watimport-in-framework-header" 185 | #endif 186 | @import Foundation; 187 | @import ObjectiveC; 188 | #endif 189 | 190 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" 191 | #pragma clang diagnostic ignored "-Wduplicate-method-arg" 192 | #if __has_warning("-Wpragma-clang-attribute") 193 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute" 194 | #endif 195 | #pragma clang diagnostic ignored "-Wunknown-pragmas" 196 | #pragma clang diagnostic ignored "-Wnullability" 197 | 198 | #if __has_attribute(external_source_symbol) 199 | # pragma push_macro("any") 200 | # undef any 201 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SHAudioPlayerSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) 202 | # pragma pop_macro("any") 203 | #endif 204 | 205 | 206 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK13SHAudioPlayer") 207 | @interface SHAudioPlayer : NSObject 208 | - (nonnull instancetype)init SWIFT_UNAVAILABLE; 209 | + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); 210 | @end 211 | 212 | @protocol SHAudioPlayerPrivateProtocol; 213 | @protocol SHAudioPlayerItemProtocol; 214 | 215 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateDelegate_") 216 | @protocol SHAudioPlayerPrivateDelegate 217 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 218 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 219 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 220 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 221 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 222 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 223 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 224 | @end 225 | 226 | 227 | @interface SHAudioPlayer (SWIFT_EXTENSION(SHAudioPlayerSDK)) 228 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 229 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 230 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 231 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 232 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 233 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 234 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 235 | @end 236 | 237 | 238 | @class UISlider; 239 | 240 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateProtocol_") 241 | @protocol SHAudioPlayerPrivateProtocol 242 | @property (nonatomic, weak) id _Nullable delegate; 243 | - (BOOL)isReady SWIFT_WARN_UNUSED_RESULT; 244 | - (BOOL)isLoading SWIFT_WARN_UNUSED_RESULT; 245 | - (BOOL)isPlaying SWIFT_WARN_UNUSED_RESULT; 246 | - (BOOL)isPaused SWIFT_WARN_UNUSED_RESULT; 247 | - (float)volume SWIFT_WARN_UNUSED_RESULT; 248 | - (NSString * _Nullable)currentSongTitle SWIFT_WARN_UNUSED_RESULT; 249 | - (void)sliderValueChangedWithSlider:(UISlider * _Nonnull)slider; 250 | - (void)previous; 251 | - (void)next; 252 | - (void)playAtIndex:(NSInteger)atIndex; 253 | - (void)playPauseAction; 254 | - (void)stop; 255 | - (void)pause; 256 | - (void)resume; 257 | - (NSURL * _Nullable)currentSongUrl SWIFT_WARN_UNUSED_RESULT; 258 | - (BOOL)isAlbumLoaded SWIFT_WARN_UNUSED_RESULT; 259 | - (NSArray * _Nullable)currentUrls SWIFT_WARN_UNUSED_RESULT; 260 | - (id _Nullable)currentPlayerItem SWIFT_WARN_UNUSED_RESULT; 261 | - (double)duration SWIFT_WARN_UNUSED_RESULT; 262 | - (double)progress SWIFT_WARN_UNUSED_RESULT; 263 | @end 264 | 265 | 266 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK10SHPlayList") 267 | @interface SHPlayList : NSObject 268 | SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SHPlayList * _Nonnull shared;) 269 | + (SHPlayList * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; 270 | - (NSArray> * _Nullable)playListArray SWIFT_WARN_UNUSED_RESULT; 271 | - (NSInteger)indexOfSongWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 272 | - (id _Nullable)songFromIndexWithIndex:(NSInteger)index SWIFT_WARN_UNUSED_RESULT; 273 | - (NSInteger)count SWIFT_WARN_UNUSED_RESULT; 274 | - (void)setupSongsWithSongs:(NSArray> * _Nonnull)songs; 275 | - (NSArray * _Nullable)songUrls SWIFT_WARN_UNUSED_RESULT; 276 | - (id _Nullable)songFromUrlWithUrl:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; 277 | - (id _Nullable)nextSong:(id _Nullable)currentItem SWIFT_WARN_UNUSED_RESULT; 278 | - (id _Nullable)prevSong SWIFT_WARN_UNUSED_RESULT; 279 | - (BOOL)isHLSWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 280 | - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 281 | @end 282 | 283 | #if __has_attribute(external_source_symbol) 284 | # pragma clang attribute pop 285 | #endif 286 | #pragma clang diagnostic pop 287 | 288 | #elif defined(__ARM_ARCH_7A__) && __ARM_ARCH_7A__ 289 | // Generated by Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 290 | #pragma clang diagnostic push 291 | #pragma clang diagnostic ignored "-Wgcc-compat" 292 | 293 | #if !defined(__has_include) 294 | # define __has_include(x) 0 295 | #endif 296 | #if !defined(__has_attribute) 297 | # define __has_attribute(x) 0 298 | #endif 299 | #if !defined(__has_feature) 300 | # define __has_feature(x) 0 301 | #endif 302 | #if !defined(__has_warning) 303 | # define __has_warning(x) 0 304 | #endif 305 | 306 | #if __has_include() 307 | # include 308 | #endif 309 | 310 | #pragma clang diagnostic ignored "-Wauto-import" 311 | #include 312 | #include 313 | #include 314 | #include 315 | 316 | #if !defined(SWIFT_TYPEDEFS) 317 | # define SWIFT_TYPEDEFS 1 318 | # if __has_include() 319 | # include 320 | # elif !defined(__cplusplus) 321 | typedef uint_least16_t char16_t; 322 | typedef uint_least32_t char32_t; 323 | # endif 324 | typedef float swift_float2 __attribute__((__ext_vector_type__(2))); 325 | typedef float swift_float3 __attribute__((__ext_vector_type__(3))); 326 | typedef float swift_float4 __attribute__((__ext_vector_type__(4))); 327 | typedef double swift_double2 __attribute__((__ext_vector_type__(2))); 328 | typedef double swift_double3 __attribute__((__ext_vector_type__(3))); 329 | typedef double swift_double4 __attribute__((__ext_vector_type__(4))); 330 | typedef int swift_int2 __attribute__((__ext_vector_type__(2))); 331 | typedef int swift_int3 __attribute__((__ext_vector_type__(3))); 332 | typedef int swift_int4 __attribute__((__ext_vector_type__(4))); 333 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); 334 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); 335 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); 336 | #endif 337 | 338 | #if !defined(SWIFT_PASTE) 339 | # define SWIFT_PASTE_HELPER(x, y) x##y 340 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) 341 | #endif 342 | #if !defined(SWIFT_METATYPE) 343 | # define SWIFT_METATYPE(X) Class 344 | #endif 345 | #if !defined(SWIFT_CLASS_PROPERTY) 346 | # if __has_feature(objc_class_property) 347 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ 348 | # else 349 | # define SWIFT_CLASS_PROPERTY(...) 350 | # endif 351 | #endif 352 | 353 | #if __has_attribute(objc_runtime_name) 354 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) 355 | #else 356 | # define SWIFT_RUNTIME_NAME(X) 357 | #endif 358 | #if __has_attribute(swift_name) 359 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) 360 | #else 361 | # define SWIFT_COMPILE_NAME(X) 362 | #endif 363 | #if __has_attribute(objc_method_family) 364 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) 365 | #else 366 | # define SWIFT_METHOD_FAMILY(X) 367 | #endif 368 | #if __has_attribute(noescape) 369 | # define SWIFT_NOESCAPE __attribute__((noescape)) 370 | #else 371 | # define SWIFT_NOESCAPE 372 | #endif 373 | #if __has_attribute(warn_unused_result) 374 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 375 | #else 376 | # define SWIFT_WARN_UNUSED_RESULT 377 | #endif 378 | #if __has_attribute(noreturn) 379 | # define SWIFT_NORETURN __attribute__((noreturn)) 380 | #else 381 | # define SWIFT_NORETURN 382 | #endif 383 | #if !defined(SWIFT_CLASS_EXTRA) 384 | # define SWIFT_CLASS_EXTRA 385 | #endif 386 | #if !defined(SWIFT_PROTOCOL_EXTRA) 387 | # define SWIFT_PROTOCOL_EXTRA 388 | #endif 389 | #if !defined(SWIFT_ENUM_EXTRA) 390 | # define SWIFT_ENUM_EXTRA 391 | #endif 392 | #if !defined(SWIFT_CLASS) 393 | # if __has_attribute(objc_subclassing_restricted) 394 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA 395 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 396 | # else 397 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 398 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA 399 | # endif 400 | #endif 401 | #if !defined(SWIFT_RESILIENT_CLASS) 402 | # if __has_attribute(objc_class_stub) 403 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) 404 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) 405 | # else 406 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) 407 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) 408 | # endif 409 | #endif 410 | 411 | #if !defined(SWIFT_PROTOCOL) 412 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 413 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA 414 | #endif 415 | 416 | #if !defined(SWIFT_EXTENSION) 417 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) 418 | #endif 419 | 420 | #if !defined(OBJC_DESIGNATED_INITIALIZER) 421 | # if __has_attribute(objc_designated_initializer) 422 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) 423 | # else 424 | # define OBJC_DESIGNATED_INITIALIZER 425 | # endif 426 | #endif 427 | #if !defined(SWIFT_ENUM_ATTR) 428 | # if defined(__has_attribute) && __has_attribute(enum_extensibility) 429 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) 430 | # else 431 | # define SWIFT_ENUM_ATTR(_extensibility) 432 | # endif 433 | #endif 434 | #if !defined(SWIFT_ENUM) 435 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 436 | # if __has_feature(generalized_swift_name) 437 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type 438 | # else 439 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) 440 | # endif 441 | #endif 442 | #if !defined(SWIFT_UNAVAILABLE) 443 | # define SWIFT_UNAVAILABLE __attribute__((unavailable)) 444 | #endif 445 | #if !defined(SWIFT_UNAVAILABLE_MSG) 446 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) 447 | #endif 448 | #if !defined(SWIFT_AVAILABILITY) 449 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) 450 | #endif 451 | #if !defined(SWIFT_WEAK_IMPORT) 452 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import)) 453 | #endif 454 | #if !defined(SWIFT_DEPRECATED) 455 | # define SWIFT_DEPRECATED __attribute__((deprecated)) 456 | #endif 457 | #if !defined(SWIFT_DEPRECATED_MSG) 458 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) 459 | #endif 460 | #if __has_feature(attribute_diagnose_if_objc) 461 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) 462 | #else 463 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) 464 | #endif 465 | #if !defined(IBSegueAction) 466 | # define IBSegueAction 467 | #endif 468 | #if __has_feature(modules) 469 | #if __has_warning("-Watimport-in-framework-header") 470 | #pragma clang diagnostic ignored "-Watimport-in-framework-header" 471 | #endif 472 | @import Foundation; 473 | @import ObjectiveC; 474 | #endif 475 | 476 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" 477 | #pragma clang diagnostic ignored "-Wduplicate-method-arg" 478 | #if __has_warning("-Wpragma-clang-attribute") 479 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute" 480 | #endif 481 | #pragma clang diagnostic ignored "-Wunknown-pragmas" 482 | #pragma clang diagnostic ignored "-Wnullability" 483 | 484 | #if __has_attribute(external_source_symbol) 485 | # pragma push_macro("any") 486 | # undef any 487 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="SHAudioPlayerSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) 488 | # pragma pop_macro("any") 489 | #endif 490 | 491 | 492 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK13SHAudioPlayer") 493 | @interface SHAudioPlayer : NSObject 494 | - (nonnull instancetype)init SWIFT_UNAVAILABLE; 495 | + (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); 496 | @end 497 | 498 | @protocol SHAudioPlayerPrivateProtocol; 499 | @protocol SHAudioPlayerItemProtocol; 500 | 501 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateDelegate_") 502 | @protocol SHAudioPlayerPrivateDelegate 503 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 504 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 505 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 506 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 507 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 508 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 509 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 510 | @end 511 | 512 | 513 | @interface SHAudioPlayer (SWIFT_EXTENSION(SHAudioPlayerSDK)) 514 | - (void)shAudioPlayerPrivateCurrentItemDidChanged:(id _Nonnull)shAudioPlayerPrivate; 515 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateCurrentItemTitle:(NSString * _Nullable)updateCurrentItemTitle; 516 | - (void)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate updateSliderValue:(float)updateSliderValue currentTime:(double)currentTime duration:(double)duration; 517 | - (void)shAudioPlayerPrivateStatusDidChanged:(id _Nonnull)shAudioPlayerPrivate; 518 | - (void)shAudioPlayerPrivateResetDurationUI:(id _Nonnull)shAudioPlayerPrivate; 519 | - (void)shAudioPlayerPrivateUpdateInfoCenter:(id _Nonnull)shAudioPlayerPrivate; 520 | - (BOOL)shAudioPlayerPrivate:(id _Nonnull)shAudioPlayerPrivate didEndCurrentItem:(id _Nonnull)didEndCurrentItem SWIFT_WARN_UNUSED_RESULT; 521 | @end 522 | 523 | 524 | @class UISlider; 525 | 526 | SWIFT_PROTOCOL("_TtP16SHAudioPlayerSDK28SHAudioPlayerPrivateProtocol_") 527 | @protocol SHAudioPlayerPrivateProtocol 528 | @property (nonatomic, weak) id _Nullable delegate; 529 | - (BOOL)isReady SWIFT_WARN_UNUSED_RESULT; 530 | - (BOOL)isLoading SWIFT_WARN_UNUSED_RESULT; 531 | - (BOOL)isPlaying SWIFT_WARN_UNUSED_RESULT; 532 | - (BOOL)isPaused SWIFT_WARN_UNUSED_RESULT; 533 | - (float)volume SWIFT_WARN_UNUSED_RESULT; 534 | - (NSString * _Nullable)currentSongTitle SWIFT_WARN_UNUSED_RESULT; 535 | - (void)sliderValueChangedWithSlider:(UISlider * _Nonnull)slider; 536 | - (void)previous; 537 | - (void)next; 538 | - (void)playAtIndex:(NSInteger)atIndex; 539 | - (void)playPauseAction; 540 | - (void)stop; 541 | - (void)pause; 542 | - (void)resume; 543 | - (NSURL * _Nullable)currentSongUrl SWIFT_WARN_UNUSED_RESULT; 544 | - (BOOL)isAlbumLoaded SWIFT_WARN_UNUSED_RESULT; 545 | - (NSArray * _Nullable)currentUrls SWIFT_WARN_UNUSED_RESULT; 546 | - (id _Nullable)currentPlayerItem SWIFT_WARN_UNUSED_RESULT; 547 | - (double)duration SWIFT_WARN_UNUSED_RESULT; 548 | - (double)progress SWIFT_WARN_UNUSED_RESULT; 549 | @end 550 | 551 | 552 | SWIFT_CLASS("_TtC16SHAudioPlayerSDK10SHPlayList") 553 | @interface SHPlayList : NSObject 554 | SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) SHPlayList * _Nonnull shared;) 555 | + (SHPlayList * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; 556 | - (NSArray> * _Nullable)playListArray SWIFT_WARN_UNUSED_RESULT; 557 | - (NSInteger)indexOfSongWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 558 | - (id _Nullable)songFromIndexWithIndex:(NSInteger)index SWIFT_WARN_UNUSED_RESULT; 559 | - (NSInteger)count SWIFT_WARN_UNUSED_RESULT; 560 | - (void)setupSongsWithSongs:(NSArray> * _Nonnull)songs; 561 | - (NSArray * _Nullable)songUrls SWIFT_WARN_UNUSED_RESULT; 562 | - (id _Nullable)songFromUrlWithUrl:(NSURL * _Nonnull)url SWIFT_WARN_UNUSED_RESULT; 563 | - (id _Nullable)nextSong:(id _Nullable)currentItem SWIFT_WARN_UNUSED_RESULT; 564 | - (id _Nullable)prevSong SWIFT_WARN_UNUSED_RESULT; 565 | - (BOOL)isHLSWithSong:(id _Nonnull)song SWIFT_WARN_UNUSED_RESULT; 566 | - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 567 | @end 568 | 569 | #if __has_attribute(external_source_symbol) 570 | # pragma clang attribute pop 571 | #endif 572 | #pragma clang diagnostic pop 573 | 574 | #endif 575 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Headers/SHAudioPlayerSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHAudioPlayerSDK.h 3 | // SHAudioPlayerSDK 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for SHAudioPlayerSDK. 12 | FOUNDATION_EXPORT double SHAudioPlayerSDKVersionNumber; 13 | 14 | //! Project version string for SHAudioPlayerSDK. 15 | FOUNDATION_EXPORT const unsigned char SHAudioPlayerSDKVersionString[]; 16 | 17 | #import 18 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Headers/SHStreamManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // SHStreamManager.h 3 | // SHAudioPlayer 4 | // 5 | // Created by Shebin Koshy on 10/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | #import 10 | @protocol SHAudioPlayerPrivateDelegate; 11 | @protocol SHAudioPlayerPrivateProtocol; 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | @interface SHStreamManager : NSObject 15 | 16 | @property (readwrite, unsafe_unretained) id delegate; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Info.plist -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftdoc -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm.swiftmodule -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target arm64-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftdoc -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target arm64-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/arm64.swiftmodule -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftdoc -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7-apple-ios.swiftmodule -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftdoc -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7) 3 | // swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -Onone -module-name SHAudioPlayerSDK 4 | import AVFoundation 5 | import Foundation 6 | import MediaPlayer 7 | @_exported import SHAudioPlayerSDK 8 | import Swift 9 | import UIKit 10 | @objc public class SHAudioPlayer : ObjectiveC.NSObject { 11 | public static var shared: SHAudioPlayerSDK.SHAudioPlayer 12 | weak public var delegate: SHAudioPlayerSDK.SHAudioPlayerDelegate? 13 | public func initialize(songsAr: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 14 | public func play(atIndex: Swift.Int) 15 | public func next() 16 | public func sliderValueChanged(slider: UIKit.UISlider) 17 | public func previous() 18 | public func playPauseAction() 19 | public func stop() 20 | public func pause() 21 | public func resume() 22 | public func isPaused() -> Swift.Bool 23 | public func isPlaying() -> Swift.Bool 24 | public func isLoading() -> Swift.Bool 25 | public func isReady() -> Swift.Bool 26 | public func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 27 | public func duration() -> Swift.Double 28 | public func progress() -> Swift.Double 29 | @objc deinit 30 | } 31 | extension SHAudioPlayer : SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate { 32 | @objc dynamic public func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 33 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 34 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 35 | @objc dynamic public func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 36 | @objc dynamic public func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 37 | @objc dynamic public func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 38 | @objc dynamic public func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 39 | } 40 | @objc public protocol SHAudioPlayerPrivateProtocol : AnyObject { 41 | @objc weak var delegate: SHAudioPlayerSDK.SHAudioPlayerPrivateDelegate? { get set } 42 | @objc func isReady() -> Swift.Bool 43 | @objc func isLoading() -> Swift.Bool 44 | @objc func isPlaying() -> Swift.Bool 45 | @objc func isPaused() -> Swift.Bool 46 | @objc func volume() -> Swift.Float 47 | @objc func currentSongTitle() -> Swift.String? 48 | @objc func sliderValueChanged(slider: UIKit.UISlider) 49 | @objc func previous() 50 | @objc func next() 51 | @objc func play(atIndex: Swift.Int) 52 | @objc func playPauseAction() 53 | @objc func stop() 54 | @objc func pause() 55 | @objc func resume() 56 | @objc func currentSongUrl() -> Foundation.URL? 57 | @objc func isAlbumLoaded() -> Swift.Bool 58 | @objc func currentUrls() -> [Foundation.URL]? 59 | @objc func currentPlayerItem() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 60 | @objc func duration() -> Swift.Double 61 | @objc func progress() -> Swift.Double 62 | } 63 | @objc public protocol SHAudioPlayerPrivateDelegate : AnyObject { 64 | @objc func shAudioPlayerPrivateCurrentItemDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 65 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateCurrentItemTitle: Swift.String?) 66 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, updateSliderValue: Swift.Float, currentTime: Swift.Double, duration: Swift.Double) 67 | @objc func shAudioPlayerPrivateStatusDidChanged(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 68 | @objc func shAudioPlayerPrivateResetDurationUI(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 69 | @objc func shAudioPlayerPrivateUpdateInfoCenter(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol) 70 | @objc func shAudioPlayerPrivate(_ shAudioPlayerPrivate: SHAudioPlayerSDK.SHAudioPlayerPrivateProtocol, didEndCurrentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 71 | } 72 | @objc public class SHPlayList : ObjectiveC.NSObject { 73 | @objc public static var shared: SHAudioPlayerSDK.SHPlayList 74 | @objc public func playListArray() -> [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]? 75 | @objc public func indexOfSong(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Int 76 | @objc public func songFromIndex(index: Swift.Int) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 77 | @objc public func count() -> Swift.Int 78 | @objc public func setupSongs(songs: [SHAudioPlayerSDK.SHAudioPlayerItemProtocol]) 79 | @objc public func songUrls() -> [Foundation.URL]? 80 | @objc public func songFromUrl(url: Foundation.URL) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 81 | @objc public func nextSong(_ currentItem: SHAudioPlayerSDK.SHAudioPlayerItemProtocol?) -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 82 | @objc public func prevSong() -> SHAudioPlayerSDK.SHAudioPlayerItemProtocol? 83 | @objc public func isHLS(song: SHAudioPlayerSDK.SHAudioPlayerItemProtocol) -> Swift.Bool 84 | @objc override dynamic public init() 85 | @objc deinit 86 | } 87 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/Modules/SHAudioPlayerSDK.swiftmodule/armv7.swiftmodule -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module SHAudioPlayerSDK { 2 | umbrella header "SHAudioPlayerSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module SHAudioPlayerSDK.Swift { 9 | header "SHAudioPlayerSDK-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /SHAudioPlayerSDK.framework/SHAudioPlayerSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSDK.framework/SHAudioPlayerSDK -------------------------------------------------------------------------------- /SHAudioPlayerSample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 986CA43024C2E8F8004C8855 /* SHAudioPlayerSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 986CA42E24C2E8EB004C8855 /* SHAudioPlayerSDK.framework */; }; 11 | 986CA43124C2E8F8004C8855 /* SHAudioPlayerSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 986CA42E24C2E8EB004C8855 /* SHAudioPlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 12 | AF092C0B2299918600690AE2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF092C0A2299918600690AE2 /* AppDelegate.swift */; }; 13 | AF092C0D2299918600690AE2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF092C0C2299918600690AE2 /* ViewController.swift */; }; 14 | AF092C102299918600690AE2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AF092C0E2299918600690AE2 /* Main.storyboard */; }; 15 | AF092C122299918900690AE2 /* SHAudioPlayerSampleAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AF092C112299918900690AE2 /* SHAudioPlayerSampleAssets.xcassets */; }; 16 | AF092C152299918900690AE2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AF092C132299918900690AE2 /* LaunchScreen.storyboard */; }; 17 | AF092C1F2299927300690AE2 /* MySongObj.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF092C1E2299927200690AE2 /* MySongObj.swift */; }; 18 | AF8D5DF5229D527D00DE00F9 /* system_alerts_melodic_01.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = AF8D5DF4229D527C00DE00F9 /* system_alerts_melodic_01.mp3 */; }; 19 | /* End PBXBuildFile section */ 20 | 21 | /* Begin PBXCopyFilesBuildPhase section */ 22 | AF8D5DF8229D52E200DE00F9 /* Embed Frameworks */ = { 23 | isa = PBXCopyFilesBuildPhase; 24 | buildActionMask = 2147483647; 25 | dstPath = ""; 26 | dstSubfolderSpec = 10; 27 | files = ( 28 | 986CA43124C2E8F8004C8855 /* SHAudioPlayerSDK.framework in Embed Frameworks */, 29 | ); 30 | name = "Embed Frameworks"; 31 | runOnlyForDeploymentPostprocessing = 0; 32 | }; 33 | /* End PBXCopyFilesBuildPhase section */ 34 | 35 | /* Begin PBXFileReference section */ 36 | 986CA42E24C2E8EB004C8855 /* SHAudioPlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SHAudioPlayerSDK.framework; sourceTree = SOURCE_ROOT; }; 37 | AF092C072299918600690AE2 /* SHAudioPlayerSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SHAudioPlayerSample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | AF092C0A2299918600690AE2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 39 | AF092C0C2299918600690AE2 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 40 | AF092C0F2299918600690AE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 41 | AF092C112299918900690AE2 /* SHAudioPlayerSampleAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = SHAudioPlayerSampleAssets.xcassets; sourceTree = ""; }; 42 | AF092C142299918900690AE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 43 | AF092C162299918900690AE2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44 | AF092C1E2299927200690AE2 /* MySongObj.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MySongObj.swift; sourceTree = ""; }; 45 | AF8D5DF4229D527C00DE00F9 /* system_alerts_melodic_01.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = system_alerts_melodic_01.mp3; sourceTree = ""; }; 46 | /* End PBXFileReference section */ 47 | 48 | /* Begin PBXFrameworksBuildPhase section */ 49 | AF092C042299918600690AE2 /* Frameworks */ = { 50 | isa = PBXFrameworksBuildPhase; 51 | buildActionMask = 2147483647; 52 | files = ( 53 | 986CA43024C2E8F8004C8855 /* SHAudioPlayerSDK.framework in Frameworks */, 54 | ); 55 | runOnlyForDeploymentPostprocessing = 0; 56 | }; 57 | /* End PBXFrameworksBuildPhase section */ 58 | 59 | /* Begin PBXGroup section */ 60 | AF092BFE2299918600690AE2 = { 61 | isa = PBXGroup; 62 | children = ( 63 | AF092C092299918600690AE2 /* SHAudioPlayerSample */, 64 | AF092C082299918600690AE2 /* Products */, 65 | ); 66 | sourceTree = ""; 67 | }; 68 | AF092C082299918600690AE2 /* Products */ = { 69 | isa = PBXGroup; 70 | children = ( 71 | AF092C072299918600690AE2 /* SHAudioPlayerSample.app */, 72 | ); 73 | name = Products; 74 | sourceTree = ""; 75 | }; 76 | AF092C092299918600690AE2 /* SHAudioPlayerSample */ = { 77 | isa = PBXGroup; 78 | children = ( 79 | AF8D5DF4229D527C00DE00F9 /* system_alerts_melodic_01.mp3 */, 80 | AF092C0A2299918600690AE2 /* AppDelegate.swift */, 81 | AF092C1E2299927200690AE2 /* MySongObj.swift */, 82 | AF092C0C2299918600690AE2 /* ViewController.swift */, 83 | 986CA42E24C2E8EB004C8855 /* SHAudioPlayerSDK.framework */, 84 | AF092C0E2299918600690AE2 /* Main.storyboard */, 85 | AF092C112299918900690AE2 /* SHAudioPlayerSampleAssets.xcassets */, 86 | AF092C132299918900690AE2 /* LaunchScreen.storyboard */, 87 | AF092C162299918900690AE2 /* Info.plist */, 88 | ); 89 | path = SHAudioPlayerSample; 90 | sourceTree = ""; 91 | }; 92 | /* End PBXGroup section */ 93 | 94 | /* Begin PBXNativeTarget section */ 95 | AF092C062299918600690AE2 /* SHAudioPlayerSample */ = { 96 | isa = PBXNativeTarget; 97 | buildConfigurationList = AF092C192299918900690AE2 /* Build configuration list for PBXNativeTarget "SHAudioPlayerSample" */; 98 | buildPhases = ( 99 | AF092C032299918600690AE2 /* Sources */, 100 | AF092C042299918600690AE2 /* Frameworks */, 101 | AF092C052299918600690AE2 /* Resources */, 102 | AF8D5DF8229D52E200DE00F9 /* Embed Frameworks */, 103 | ); 104 | buildRules = ( 105 | ); 106 | dependencies = ( 107 | ); 108 | name = SHAudioPlayerSample; 109 | productName = SampleTwo; 110 | productReference = AF092C072299918600690AE2 /* SHAudioPlayerSample.app */; 111 | productType = "com.apple.product-type.application"; 112 | }; 113 | /* End PBXNativeTarget section */ 114 | 115 | /* Begin PBXProject section */ 116 | AF092BFF2299918600690AE2 /* Project object */ = { 117 | isa = PBXProject; 118 | attributes = { 119 | LastSwiftUpdateCheck = 1020; 120 | LastUpgradeCheck = 1020; 121 | ORGANIZATIONNAME = "Shebin Koshy"; 122 | TargetAttributes = { 123 | AF092C062299918600690AE2 = { 124 | CreatedOnToolsVersion = 10.2; 125 | SystemCapabilities = { 126 | com.apple.BackgroundModes = { 127 | enabled = 1; 128 | }; 129 | }; 130 | }; 131 | }; 132 | }; 133 | buildConfigurationList = AF092C022299918600690AE2 /* Build configuration list for PBXProject "SHAudioPlayerSample" */; 134 | compatibilityVersion = "Xcode 9.3"; 135 | developmentRegion = en; 136 | hasScannedForEncodings = 0; 137 | knownRegions = ( 138 | en, 139 | Base, 140 | ); 141 | mainGroup = AF092BFE2299918600690AE2; 142 | productRefGroup = AF092C082299918600690AE2 /* Products */; 143 | projectDirPath = ""; 144 | projectRoot = ""; 145 | targets = ( 146 | AF092C062299918600690AE2 /* SHAudioPlayerSample */, 147 | ); 148 | }; 149 | /* End PBXProject section */ 150 | 151 | /* Begin PBXResourcesBuildPhase section */ 152 | AF092C052299918600690AE2 /* Resources */ = { 153 | isa = PBXResourcesBuildPhase; 154 | buildActionMask = 2147483647; 155 | files = ( 156 | AF092C152299918900690AE2 /* LaunchScreen.storyboard in Resources */, 157 | AF8D5DF5229D527D00DE00F9 /* system_alerts_melodic_01.mp3 in Resources */, 158 | AF092C122299918900690AE2 /* SHAudioPlayerSampleAssets.xcassets in Resources */, 159 | AF092C102299918600690AE2 /* Main.storyboard in Resources */, 160 | ); 161 | runOnlyForDeploymentPostprocessing = 0; 162 | }; 163 | /* End PBXResourcesBuildPhase section */ 164 | 165 | /* Begin PBXSourcesBuildPhase section */ 166 | AF092C032299918600690AE2 /* Sources */ = { 167 | isa = PBXSourcesBuildPhase; 168 | buildActionMask = 2147483647; 169 | files = ( 170 | AF092C0D2299918600690AE2 /* ViewController.swift in Sources */, 171 | AF092C1F2299927300690AE2 /* MySongObj.swift in Sources */, 172 | AF092C0B2299918600690AE2 /* AppDelegate.swift in Sources */, 173 | ); 174 | runOnlyForDeploymentPostprocessing = 0; 175 | }; 176 | /* End PBXSourcesBuildPhase section */ 177 | 178 | /* Begin PBXVariantGroup section */ 179 | AF092C0E2299918600690AE2 /* Main.storyboard */ = { 180 | isa = PBXVariantGroup; 181 | children = ( 182 | AF092C0F2299918600690AE2 /* Base */, 183 | ); 184 | name = Main.storyboard; 185 | sourceTree = ""; 186 | }; 187 | AF092C132299918900690AE2 /* LaunchScreen.storyboard */ = { 188 | isa = PBXVariantGroup; 189 | children = ( 190 | AF092C142299918900690AE2 /* Base */, 191 | ); 192 | name = LaunchScreen.storyboard; 193 | sourceTree = ""; 194 | }; 195 | /* End PBXVariantGroup section */ 196 | 197 | /* Begin XCBuildConfiguration section */ 198 | AF092C172299918900690AE2 /* Debug */ = { 199 | isa = XCBuildConfiguration; 200 | buildSettings = { 201 | ALWAYS_SEARCH_USER_PATHS = NO; 202 | CLANG_ANALYZER_NONNULL = YES; 203 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 204 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 205 | CLANG_CXX_LIBRARY = "libc++"; 206 | CLANG_ENABLE_MODULES = YES; 207 | CLANG_ENABLE_OBJC_ARC = YES; 208 | CLANG_ENABLE_OBJC_WEAK = YES; 209 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 210 | CLANG_WARN_BOOL_CONVERSION = YES; 211 | CLANG_WARN_COMMA = YES; 212 | CLANG_WARN_CONSTANT_CONVERSION = YES; 213 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 214 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 215 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 216 | CLANG_WARN_EMPTY_BODY = YES; 217 | CLANG_WARN_ENUM_CONVERSION = YES; 218 | CLANG_WARN_INFINITE_RECURSION = YES; 219 | CLANG_WARN_INT_CONVERSION = YES; 220 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 221 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 222 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 223 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 224 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 225 | CLANG_WARN_STRICT_PROTOTYPES = YES; 226 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 227 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 228 | CLANG_WARN_UNREACHABLE_CODE = YES; 229 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 230 | CODE_SIGN_IDENTITY = "iPhone Developer"; 231 | COPY_PHASE_STRIP = NO; 232 | DEBUG_INFORMATION_FORMAT = dwarf; 233 | ENABLE_STRICT_OBJC_MSGSEND = YES; 234 | ENABLE_TESTABILITY = YES; 235 | GCC_C_LANGUAGE_STANDARD = gnu11; 236 | GCC_DYNAMIC_NO_PIC = NO; 237 | GCC_NO_COMMON_BLOCKS = YES; 238 | GCC_OPTIMIZATION_LEVEL = 0; 239 | GCC_PREPROCESSOR_DEFINITIONS = ( 240 | "DEBUG=1", 241 | "$(inherited)", 242 | ); 243 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 244 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 245 | GCC_WARN_UNDECLARED_SELECTOR = YES; 246 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 247 | GCC_WARN_UNUSED_FUNCTION = YES; 248 | GCC_WARN_UNUSED_VARIABLE = YES; 249 | IPHONEOS_DEPLOYMENT_TARGET = 12.2; 250 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 251 | MTL_FAST_MATH = YES; 252 | ONLY_ACTIVE_ARCH = YES; 253 | SDKROOT = iphoneos; 254 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 255 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 256 | }; 257 | name = Debug; 258 | }; 259 | AF092C182299918900690AE2 /* Release */ = { 260 | isa = XCBuildConfiguration; 261 | buildSettings = { 262 | ALWAYS_SEARCH_USER_PATHS = NO; 263 | CLANG_ANALYZER_NONNULL = YES; 264 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 265 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 266 | CLANG_CXX_LIBRARY = "libc++"; 267 | CLANG_ENABLE_MODULES = YES; 268 | CLANG_ENABLE_OBJC_ARC = YES; 269 | CLANG_ENABLE_OBJC_WEAK = YES; 270 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 271 | CLANG_WARN_BOOL_CONVERSION = YES; 272 | CLANG_WARN_COMMA = YES; 273 | CLANG_WARN_CONSTANT_CONVERSION = YES; 274 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 275 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 276 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 277 | CLANG_WARN_EMPTY_BODY = YES; 278 | CLANG_WARN_ENUM_CONVERSION = YES; 279 | CLANG_WARN_INFINITE_RECURSION = YES; 280 | CLANG_WARN_INT_CONVERSION = YES; 281 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 282 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 283 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 284 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 285 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 286 | CLANG_WARN_STRICT_PROTOTYPES = YES; 287 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 288 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 289 | CLANG_WARN_UNREACHABLE_CODE = YES; 290 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 291 | CODE_SIGN_IDENTITY = "iPhone Developer"; 292 | COPY_PHASE_STRIP = NO; 293 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 294 | ENABLE_NS_ASSERTIONS = NO; 295 | ENABLE_STRICT_OBJC_MSGSEND = YES; 296 | GCC_C_LANGUAGE_STANDARD = gnu11; 297 | GCC_NO_COMMON_BLOCKS = YES; 298 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 299 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 300 | GCC_WARN_UNDECLARED_SELECTOR = YES; 301 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 302 | GCC_WARN_UNUSED_FUNCTION = YES; 303 | GCC_WARN_UNUSED_VARIABLE = YES; 304 | IPHONEOS_DEPLOYMENT_TARGET = 12.2; 305 | MTL_ENABLE_DEBUG_INFO = NO; 306 | MTL_FAST_MATH = YES; 307 | SDKROOT = iphoneos; 308 | SWIFT_COMPILATION_MODE = wholemodule; 309 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 310 | VALIDATE_PRODUCT = YES; 311 | }; 312 | name = Release; 313 | }; 314 | AF092C1A2299918900690AE2 /* Debug */ = { 315 | isa = XCBuildConfiguration; 316 | buildSettings = { 317 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 318 | CODE_SIGN_STYLE = Automatic; 319 | DEVELOPMENT_TEAM = WDE878RJ2T; 320 | ENABLE_BITCODE = NO; 321 | FRAMEWORK_SEARCH_PATHS = ( 322 | "$(inherited)", 323 | "$(PROJECT_DIR)", 324 | ); 325 | INFOPLIST_FILE = SHAudioPlayerSample/Info.plist; 326 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 327 | LD_RUNPATH_SEARCH_PATHS = ( 328 | "$(inherited)", 329 | "@executable_path/Frameworks", 330 | ); 331 | PRODUCT_BUNDLE_IDENTIFIER = com.shebin.sseTwon; 332 | PRODUCT_NAME = "$(TARGET_NAME)"; 333 | SWIFT_VERSION = 5.0; 334 | TARGETED_DEVICE_FAMILY = "1,2"; 335 | }; 336 | name = Debug; 337 | }; 338 | AF092C1B2299918900690AE2 /* Release */ = { 339 | isa = XCBuildConfiguration; 340 | buildSettings = { 341 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 342 | CODE_SIGN_STYLE = Automatic; 343 | DEVELOPMENT_TEAM = WDE878RJ2T; 344 | ENABLE_BITCODE = NO; 345 | FRAMEWORK_SEARCH_PATHS = ( 346 | "$(inherited)", 347 | "$(PROJECT_DIR)", 348 | ); 349 | INFOPLIST_FILE = SHAudioPlayerSample/Info.plist; 350 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 351 | LD_RUNPATH_SEARCH_PATHS = ( 352 | "$(inherited)", 353 | "@executable_path/Frameworks", 354 | ); 355 | PRODUCT_BUNDLE_IDENTIFIER = com.shebin.sseTwon; 356 | PRODUCT_NAME = "$(TARGET_NAME)"; 357 | SWIFT_VERSION = 5.0; 358 | TARGETED_DEVICE_FAMILY = "1,2"; 359 | }; 360 | name = Release; 361 | }; 362 | /* End XCBuildConfiguration section */ 363 | 364 | /* Begin XCConfigurationList section */ 365 | AF092C022299918600690AE2 /* Build configuration list for PBXProject "SHAudioPlayerSample" */ = { 366 | isa = XCConfigurationList; 367 | buildConfigurations = ( 368 | AF092C172299918900690AE2 /* Debug */, 369 | AF092C182299918900690AE2 /* Release */, 370 | ); 371 | defaultConfigurationIsVisible = 0; 372 | defaultConfigurationName = Release; 373 | }; 374 | AF092C192299918900690AE2 /* Build configuration list for PBXNativeTarget "SHAudioPlayerSample" */ = { 375 | isa = XCConfigurationList; 376 | buildConfigurations = ( 377 | AF092C1A2299918900690AE2 /* Debug */, 378 | AF092C1B2299918900690AE2 /* Release */, 379 | ); 380 | defaultConfigurationIsVisible = 0; 381 | defaultConfigurationName = Release; 382 | }; 383 | /* End XCConfigurationList section */ 384 | }; 385 | rootObject = AF092BFF2299918600690AE2 /* Project object */; 386 | } 387 | -------------------------------------------------------------------------------- /SHAudioPlayerSample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SHAudioPlayerSample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SHAudioPlayerSample.xcodeproj/project.xcworkspace/xcuserdata/shanmugarajp.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSample.xcodeproj/project.xcworkspace/xcuserdata/shanmugarajp.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SHAudioPlayerSample.xcodeproj/xcshareddata/xcschemes/SHAudioPlayerSample.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /SHAudioPlayerSample.xcodeproj/xcuserdata/shanmugarajp.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /SHAudioPlayerSample.xcodeproj/xcuserdata/shanmugarajp.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SHAudioPlayerSample.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | AF092C062299918600690AE2 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /SHAudioPlayerSample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // SHAudioPlayerSample 4 | // 5 | // Created by Shebin Koshy on 25/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 18 | // Override point for customization after application launch. 19 | return true 20 | } 21 | 22 | func applicationWillResignActive(_ application: UIApplication) { 23 | // 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. 24 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 25 | } 26 | 27 | func applicationDidEnterBackground(_ application: UIApplication) { 28 | // 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. 29 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 30 | } 31 | 32 | func applicationWillEnterForeground(_ application: UIApplication) { 33 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 34 | } 35 | 36 | func applicationDidBecomeActive(_ application: UIApplication) { 37 | // 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. 38 | } 39 | 40 | func applicationWillTerminate(_ application: UIApplication) { 41 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 42 | } 43 | 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /SHAudioPlayerSample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /SHAudioPlayerSample/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 29 | 37 | 45 | 53 | 61 | 62 | 63 | 64 | 65 | 72 | 79 | 86 | 94 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /SHAudioPlayerSample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | NSAppTransportSecurity 24 | 25 | NSAllowsArbitraryLoads 26 | 27 | 28 | UIBackgroundModes 29 | 30 | audio 31 | 32 | UILaunchStoryboardName 33 | LaunchScreen 34 | UIMainStoryboardFile 35 | Main 36 | UIRequiredDeviceCapabilities 37 | 38 | armv7 39 | 40 | UISupportedInterfaceOrientations 41 | 42 | UIInterfaceOrientationPortrait 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | UISupportedInterfaceOrientations~ipad 47 | 48 | UIInterfaceOrientationPortrait 49 | UIInterfaceOrientationPortraitUpsideDown 50 | UIInterfaceOrientationLandscapeLeft 51 | UIInterfaceOrientationLandscapeRight 52 | 53 | UIUserInterfaceStyle 54 | Light 55 | 56 | 57 | -------------------------------------------------------------------------------- /SHAudioPlayerSample/MySongObj.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MySongObj.swift 3 | // SHAudioPlayerSample 4 | // 5 | // Created by Shebin Koshy on 22/07/18. 6 | // Copyright © 2018 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | //import SDWebImage 11 | import SHAudioPlayerSDK 12 | 13 | public class MySongObj: NSObject { 14 | 15 | 16 | @objc public var uniqueId:String? 17 | @objc public var title:String? 18 | /*@objc var imageUrl:String? { 19 | didSet { 20 | guard let imgUrl = imageUrl else { 21 | return; 22 | } 23 | SDWebImageManager.shared().downloadImage(with: NSURL(string: imgUrl) as URL!, options: .continueInBackground, progress: { 24 | (receivedSize :Int, ExpectedSize :Int) in 25 | 26 | }, completed: {[unowned self] 27 | (image : UIImage?, error : Error?, cacheType : SDImageCacheType, finished : Bool, url : URL?) in 28 | self.albumArtImage = image 29 | }) 30 | 31 | } 32 | }*/ 33 | @objc public var songUrl:URL? 34 | @objc public var albumArtImage:UIImage? 35 | 36 | } 37 | 38 | extension MySongObj: SHAudioPlayerItemProtocol { 39 | @objc public func titleToDisplay() -> String { 40 | if title != nil { 41 | return title!; 42 | } 43 | return songUrl?.lastPathComponent ?? "" 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /SHAudioPlayerSample/SHAudioPlayerSampleAssets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "20x20", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "20x20", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "29x29", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "29x29", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "size" : "40x40", 66 | "scale" : "1x" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "size" : "40x40", 71 | "scale" : "2x" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "size" : "76x76", 76 | "scale" : "1x" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "size" : "76x76", 81 | "scale" : "2x" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "size" : "83.5x83.5", 86 | "scale" : "2x" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "size" : "1024x1024", 91 | "scale" : "1x" 92 | } 93 | ], 94 | "info" : { 95 | "version" : 1, 96 | "author" : "xcode" 97 | } 98 | } -------------------------------------------------------------------------------- /SHAudioPlayerSample/SHAudioPlayerSampleAssets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /SHAudioPlayerSample/SHAudioPlayerSampleAssets.xcassets/MusicImg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "MusicImage.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SHAudioPlayerSample/SHAudioPlayerSampleAssets.xcassets/MusicImg.imageset/MusicImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSample/SHAudioPlayerSampleAssets.xcassets/MusicImg.imageset/MusicImage.png -------------------------------------------------------------------------------- /SHAudioPlayerSample/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // SHAudioPlayerSample 4 | // 5 | // Created by Shebin Koshy on 23/05/19. 6 | // Copyright © 2019 Shebin Koshy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MediaPlayer 11 | import SHAudioPlayerSDK 12 | 13 | class ViewController: UIViewController { 14 | 15 | @IBOutlet weak var slider: UISlider! 16 | @IBOutlet weak var currentTime: UILabel! 17 | @IBOutlet weak var totalTime: UILabel! 18 | @IBOutlet weak var songTitle: UILabel! 19 | @IBOutlet weak var status: UILabel! 20 | @IBOutlet weak var imageV: UIImageView! 21 | let player = SHAudioPlayer.shared 22 | 23 | override func viewDidLoad() { 24 | super.viewDidLoad() 25 | // Do any additional setup after loading the view. 26 | configureObservers() 27 | backgroundActions() 28 | player.delegate = self 29 | slider.addTarget(self, action: #selector(ViewController.changeVlaue(_:)), for: .valueChanged) 30 | resetUI() 31 | } 32 | 33 | @objc func changeVlaue(_ sender: UISlider) { 34 | player.sliderValueChanged(slider: slider) 35 | } 36 | 37 | public func backgroundActions() { 38 | UIApplication.shared.beginReceivingRemoteControlEvents() 39 | let commandCenter = MPRemoteCommandCenter.shared() 40 | commandCenter.playCommand.addTarget(handler: { (event) in 41 | self.player.playPauseAction() 42 | return MPRemoteCommandHandlerStatus.success 43 | }) 44 | commandCenter.pauseCommand.addTarget(handler: { (event) in 45 | self.player.pause() 46 | return MPRemoteCommandHandlerStatus.success 47 | }) 48 | commandCenter.nextTrackCommand.addTarget(handler: { (event) in 49 | self.player.next() 50 | return MPRemoteCommandHandlerStatus.success 51 | }) 52 | commandCenter.previousTrackCommand.addTarget(handler: { (event) in 53 | self.player.previous() 54 | return MPRemoteCommandHandlerStatus.success 55 | }) 56 | } 57 | 58 | func configureObservers() { 59 | NotificationCenter.default.addObserver(self, selector: #selector(handleAudioSessionInterruption), name: AVAudioSession.interruptionNotification, object: AVAudioSession.sharedInstance()) 60 | } 61 | 62 | 63 | @objc func handleAudioSessionInterruption(_ notification : Notification) { 64 | guard let userInfo = notification.userInfo as? [String: AnyObject] else { return } 65 | guard let rawInterruptionType = userInfo[AVAudioSessionInterruptionTypeKey] as? NSNumber else { return } 66 | guard let interruptionType = AVAudioSession.InterruptionType(rawValue: rawInterruptionType.uintValue) else { return } 67 | 68 | switch interruptionType { 69 | case .began: 70 | player.pause() 71 | case .ended: 72 | if let rawInterruptionOption = userInfo[AVAudioSessionInterruptionOptionKey] as? NSNumber { 73 | let interruptionOption = AVAudioSession.InterruptionOptions(rawValue: rawInterruptionOption.uintValue) 74 | if interruptionOption == AVAudioSession.InterruptionOptions.shouldResume { 75 | if SHAudioPlayer.shared.isPaused() == true { 76 | SHAudioPlayer.shared.playPauseAction() 77 | } 78 | } 79 | } 80 | @unknown default: 81 | print("error in interruptionType") 82 | } 83 | } 84 | 85 | @IBAction func play() { 86 | let hlsLiveStream = MySongObj() 87 | hlsLiveStream.songUrl = URL(string: "https://www.internet-radio.com/servers/tools/playlistgenerator/?u=http://us4.internet-radio.com:8266/listen.pls&t=.m3u") 88 | hlsLiveStream.albumArtImage = UIImage(named: "MusicImg") 89 | 90 | // let stream1 = MySongObj() 91 | // stream1.songUrl = URL(string: "http://rom1.be/wp-content/uploads/2013/09/Dimitri-Vegas-Like-Mike-vs.-Sander-Van-Doorn-Project-T-Martin-Garrix-Remix..mp3") 92 | // stream1.albumArtImage = UIImage(named: "MusicImg") 93 | 94 | let hlsLiveStream2 = MySongObj() 95 | hlsLiveStream2.songUrl = URL(string: "https://www.internet-radio.com/servers/tools/playlistgenerator/?u=http://uk3.internet-radio.com:8405/live.m3u&t=.m3u") 96 | hlsLiveStream2.albumArtImage = UIImage(named: "MusicImg") 97 | 98 | let stream2 = MySongObj() 99 | stream2.songUrl = URL(string: "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3") 100 | stream2.albumArtImage = UIImage(named: "MusicImg") 101 | 102 | let liveStream1 = MySongObj() 103 | liveStream1.songUrl = URL(string: "http://strm112.1.fm/acountry_mobile_mp3") 104 | liveStream1.albumArtImage = UIImage(named: "MusicImg") 105 | 106 | let local1 = MySongObj() 107 | let local1StrUrl = Bundle.main.path(forResource: "system_alerts_melodic_01", ofType: "mp3") 108 | local1.songUrl = URL(fileURLWithPath: local1StrUrl!) 109 | local1.albumArtImage = UIImage(named: "MusicImg") 110 | 111 | let arSongs = [hlsLiveStream,hlsLiveStream2,stream2,liveStream1,local1] 112 | SHAudioPlayer.shared.initialize(songsAr: arSongs) 113 | 114 | SHAudioPlayer.shared.play(atIndex: 0) 115 | } 116 | 117 | @IBAction func pause() { 118 | SHAudioPlayer.shared.pause() 119 | } 120 | 121 | @IBAction func resume() { 122 | SHAudioPlayer.shared.resume() 123 | } 124 | 125 | @IBAction func prev() { 126 | SHAudioPlayer.shared.previous() 127 | } 128 | 129 | @IBAction func next() { 130 | SHAudioPlayer.shared.next() 131 | } 132 | 133 | @IBAction func stop() { 134 | SHAudioPlayer.shared.stop() 135 | } 136 | 137 | 138 | func populateLabelWithTime(_ label : UILabel, time: Double) { 139 | let minutes = Int(time / 60) 140 | let seconds = Int(time) - minutes * 60 141 | 142 | label.text = String(format: "%02d", minutes) + ":" + String(format: "%02d", seconds) 143 | } 144 | 145 | func resetUI() { 146 | imageV.image = nil 147 | status.text = "" 148 | songTitle.text = "" 149 | currentTime.text = "" 150 | totalTime.text = "" 151 | slider.value = 0 152 | } 153 | 154 | } 155 | 156 | extension ViewController: SHAudioPlayerDelegate { 157 | 158 | 159 | func shAudioPlayerUpdateInfoCenter(_ shAudioPlayer: SHAudioPlayer) { 160 | guard let item = SHAudioPlayer.shared.currentPlayerItem() else { 161 | return; 162 | } 163 | 164 | let title = item.titleToDisplay() 165 | let currentTime = SHAudioPlayer.shared.progress() 166 | let duration = SHAudioPlayer.shared.duration() 167 | let trackNumber = SHPlayList.shared.indexOfSong(song: item) 168 | let trackCount = SHPlayList.shared.count() 169 | 170 | var nowPlayingInfo : [String : AnyObject] = [ 171 | MPMediaItemPropertyPlaybackDuration : duration as AnyObject, 172 | MPMediaItemPropertyTitle : title as AnyObject, 173 | MPNowPlayingInfoPropertyElapsedPlaybackTime : currentTime as AnyObject, 174 | MPNowPlayingInfoPropertyPlaybackQueueCount :trackCount as AnyObject, 175 | MPNowPlayingInfoPropertyPlaybackQueueIndex : trackNumber as AnyObject, 176 | MPMediaItemPropertyMediaType : MPMediaType.anyAudio.rawValue as AnyObject 177 | ] 178 | 179 | if let img = item.albumArtImage { 180 | nowPlayingInfo[MPMediaItemPropertyArtwork] = MPMediaItemArtwork(image: img) 181 | } 182 | 183 | MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo 184 | } 185 | 186 | 187 | func shAudioPlayerItemDidChanged(_ shAudioPlayer: SHAudioPlayer)//When next or previous need to refresh UI (reload tableview's current playing song selection) 188 | { 189 | print("shAudioPlayerItemDidChanged") 190 | } 191 | 192 | func shAudioPlayer(_ shAudioPlayer: SHAudioPlayer, updateCurrentItemTitle:String?) { 193 | print("updateCurrentItemTitle") 194 | self.songTitle.text = updateCurrentItemTitle 195 | } 196 | 197 | func shAudioPlayer(_ shAudioPlayer: SHAudioPlayer!, updateSliderValue value: CGFloat, currentTime: Double, duration: Double) { 198 | slider.value = Float(value) 199 | populateLabelWithTime(self.currentTime, time: currentTime) 200 | populateLabelWithTime(self.totalTime, time: duration) 201 | } 202 | 203 | func shAudioPlayerStatusDidChanged(_ shAudioPlayer: SHAudioPlayer) { 204 | print("shAudioPlayerStatusDidChanged") 205 | if shAudioPlayer.isLoading() == true { 206 | status.text = "loading" 207 | } else if shAudioPlayer.isReady() == true { 208 | resetUI() 209 | status.text = "stopped" 210 | } else if shAudioPlayer.isPlaying() == true { 211 | status.text = "playing" 212 | imageV.image = shAudioPlayer.currentPlayerItem()?.albumArtImage 213 | } else if shAudioPlayer.isPaused() == true { 214 | status.text = "paused" 215 | } 216 | } 217 | 218 | func shAudioPlayerResetDurationUI(_ shAudioPlayer: SHAudioPlayer)//Live url case need to reset duration 219 | { 220 | slider.value = 0 221 | populateLabelWithTime(self.currentTime, time: 0) 222 | populateLabelWithTime(self.totalTime, time: 0) 223 | } 224 | 225 | public func shAudioPlayer(_ shAudioPlayer: SHAudioPlayer, didEndCurrentItem:SHAudioPlayerItemProtocol) { 226 | print("didEndCurrentItem") 227 | } 228 | 229 | } 230 | 231 | -------------------------------------------------------------------------------- /SHAudioPlayerSample/system_alerts_melodic_01.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shebinkoshy/SHAudioPlayer/1b0376e8005ddc29a5bb20cddd79e63c9614cf71/SHAudioPlayerSample/system_alerts_melodic_01.mp3 --------------------------------------------------------------------------------