Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 46ab845c8e | |||
| b597704115 | |||
| 889e2257ab | |||
| e962008b4c | |||
| d6c1d13d7d |
@@ -103,6 +103,8 @@ class ViewController: UIViewController {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
SAPlayer.Downloader.allowUsingCellularData = true
|
||||
|
||||
SAPlayer.shared.DEBUG_MODE = true
|
||||
|
||||
isPlayable = false
|
||||
|
||||
@@ -123,6 +123,10 @@ SwiftAudioPlayer is available under the MIT license. See the LICENSE file for mo
|
||||
|
||||
Access the player and all of its fields and functions through `SAPlayer.shared`.
|
||||
|
||||
### Supported file types
|
||||
|
||||
Known supported file types are `.mp3` and `.wav`.
|
||||
|
||||
### Playing Audio (Basic Commands)
|
||||
|
||||
To set up player with audio to play, use either:
|
||||
@@ -199,6 +203,12 @@ And use the following to stop any active or prevent future downloads of the corr
|
||||
func cancelDownload(withRemoteUrl url: URL)
|
||||
```
|
||||
|
||||
By default downloading will be allowed on cellular data. If you would like to turn this off set:
|
||||
```swift
|
||||
SAPlayer.Downloader.allowUsingCellularData = false
|
||||
```
|
||||
You can also retrieve what preference you have set for cellular downloads through `allowUsingCellularData`.
|
||||
|
||||
### Manage Downloaded
|
||||
|
||||
Use the following to manage downloaded audio files.
|
||||
|
||||
@@ -290,6 +290,16 @@ class AudioStreamEngine: AudioEngine {
|
||||
updateNetworkBufferRange()
|
||||
}
|
||||
|
||||
override func pause() {
|
||||
queue.async { [weak self] in
|
||||
self?.pauseHelperDispatchQueue()
|
||||
}
|
||||
}
|
||||
|
||||
private func pauseHelperDispatchQueue() {
|
||||
super.pause()
|
||||
}
|
||||
|
||||
override func invalidate() {
|
||||
super.invalidate()
|
||||
converter.invalidate()
|
||||
|
||||
@@ -32,6 +32,7 @@ protocol AudioDataManagable {
|
||||
var allowCellular: Bool { get set }
|
||||
|
||||
func setBackgroundCompletionHandler(_ completionHandler: @escaping () -> ())
|
||||
func setAllowCellularDownloadPreference(_ preference: Bool)
|
||||
|
||||
func clear()
|
||||
|
||||
@@ -51,7 +52,7 @@ protocol AudioDataManagable {
|
||||
}
|
||||
|
||||
class AudioDataManager: AudioDataManagable {
|
||||
var allowCellular: Bool = false
|
||||
var allowCellular: Bool = true
|
||||
|
||||
static let shared: AudioDataManagable = AudioDataManager()
|
||||
|
||||
@@ -99,6 +100,10 @@ class AudioDataManager: AudioDataManagable {
|
||||
backgroundCompletion = completionHandler
|
||||
}
|
||||
|
||||
func setAllowCellularDownloadPreference(_ preference: Bool) {
|
||||
allowCellular = preference
|
||||
}
|
||||
|
||||
func attach(callback: @escaping (_ id: ID, _ progress: Double)->()) {
|
||||
globalDownloadProgressCallback = callback
|
||||
}
|
||||
|
||||
@@ -103,12 +103,15 @@ extension FileStorage {
|
||||
}
|
||||
|
||||
static func locate(_ id: ID) -> URL? {
|
||||
let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
|
||||
|
||||
for url in urls {
|
||||
if url.absoluteString.contains(id) && url.pathExtension != "" {
|
||||
_ = getUrl(givenId: id, andFileExtension: url.pathExtension)
|
||||
return url
|
||||
let folderUrls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
|
||||
guard folderUrls.count != 0 else { return nil }
|
||||
|
||||
if let urls = try? FileManager.default.contentsOfDirectory(at: folderUrls[0], includingPropertiesForKeys: nil) {
|
||||
for url in urls {
|
||||
if url.absoluteString.contains(id) && url.pathExtension != "" {
|
||||
_ = getUrl(givenId: id, andFileExtension: url.pathExtension)
|
||||
return url
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -100,5 +100,14 @@ extension SAPlayer {
|
||||
public static func setBackgroundCompletionHandler(_ completionHandler: @escaping () -> ()) {
|
||||
AudioDataManager.shared.setBackgroundCompletionHandler(completionHandler)
|
||||
}
|
||||
|
||||
/**
|
||||
Whether downloading audio on cellular data is allowed. By default this is set to `true`.
|
||||
*/
|
||||
public static var allowUsingCellularData = true {
|
||||
didSet {
|
||||
AudioDataManager.shared.setAllowCellularDownloadPreference(allowUsingCellularData)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'SwiftAudioPlayer'
|
||||
s.version = '2.11.0'
|
||||
s.version = '2.12.0'
|
||||
s.summary = 'SwiftAudioPlayer is a Swift based audio player that can handle streaming from a remote location and audio manipulation.'
|
||||
|
||||
# This description is used to generate tags and improve search results.
|
||||
|
||||
Reference in New Issue
Block a user