How in the hoot do you successfully stream a remote mp3 file in swift 4?Unable to open remote audio file via AVPlayer, even though the link seems to be correctHow to call Objective-C code from SwiftAVAudioPlayer didn't run from url file in Swift ProgrammingImpossible to stop AVPlayerDoes Looping remotely fetched video in AVPlayer cause redownload?AVPlayer not playing m3u8 from local fileNon-responsive stream delegate in SwiftHow to pass HTTP Basic Authentication to AVAudioPlayer in Swift 4Swift: Playing audio using AVPlayer - Audio is not playing, cannot hear audio
Bb13b9 confusion
Does the new finding on "reversing a quantum jump mid-flight" rule out any interpretations of QM?
Generate basis elements of the Steenrod algebra
Is it possible to fly backward if you have a 'really strong' headwind?
Why this script works well in bash but not in dash
Who enforces MPAA rating adherence?
Is it legal for a bar bouncer to confiscate a fake ID
Is it possible for a vehicle to be manufactured without a catalytic converter?
Are polynomials with the same roots identical?
Live action TV show where High school Kids go into the virtual world and have to clear levels
How to handle (one's own) self-harm scars (on the arm), in a work environment?
Determining fair price for profitable mobile app business
Projective subvarieties of a quasiprojective variety
Why am I getting a strange double quote (“) in Open Office instead of the ordinary one (")?
Is it safe to change the harddrive power feature so that it never turns off?
Why was this person allowed to become Grand Maester?
Does the Long March-11 increase its thrust after clearing the launch tower?
If I leave the US through an airport, do I have to return through the same airport?
Why we don’t make use of the t-distribution for constructing a confidence interval for a proportion?
Why can my keyboard only digest 6 keypresses at a time?
Print lines between start & end pattern, but if end pattern does not exist, don't print
Is using 'echo' to display attacker-controlled data on the terminal dangerous?
Overlapping String-Blocks
How to safely destroy (a large quantity of) valid checks?
How in the hoot do you successfully stream a remote mp3 file in swift 4?
Unable to open remote audio file via AVPlayer, even though the link seems to be correctHow to call Objective-C code from SwiftAVAudioPlayer didn't run from url file in Swift ProgrammingImpossible to stop AVPlayerDoes Looping remotely fetched video in AVPlayer cause redownload?AVPlayer not playing m3u8 from local fileNon-responsive stream delegate in SwiftHow to pass HTTP Basic Authentication to AVAudioPlayer in Swift 4Swift: Playing audio using AVPlayer - Audio is not playing, cannot hear audio
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I am working with swift 4 and cannot successfully stream an mp3 file to my device. There are no errors to lead me anywhere. What am I missing as far as AVPlayers capabilities? It seems others have had success streaming remote mp3 files. Additionally, the server is https.
let newUrl = NSURL(string: urlMain)
let test = AVPlayer(url: newUrl as! URL)
test.play()
swift avfoundation nsurl
add a comment |
I am working with swift 4 and cannot successfully stream an mp3 file to my device. There are no errors to lead me anywhere. What am I missing as far as AVPlayers capabilities? It seems others have had success streaming remote mp3 files. Additionally, the server is https.
let newUrl = NSURL(string: urlMain)
let test = AVPlayer(url: newUrl as! URL)
test.play()
swift avfoundation nsurl
add a comment |
I am working with swift 4 and cannot successfully stream an mp3 file to my device. There are no errors to lead me anywhere. What am I missing as far as AVPlayers capabilities? It seems others have had success streaming remote mp3 files. Additionally, the server is https.
let newUrl = NSURL(string: urlMain)
let test = AVPlayer(url: newUrl as! URL)
test.play()
swift avfoundation nsurl
I am working with swift 4 and cannot successfully stream an mp3 file to my device. There are no errors to lead me anywhere. What am I missing as far as AVPlayers capabilities? It seems others have had success streaming remote mp3 files. Additionally, the server is https.
let newUrl = NSURL(string: urlMain)
let test = AVPlayer(url: newUrl as! URL)
test.play()
swift avfoundation nsurl
swift avfoundation nsurl
edited Mar 24 at 21:32
Bhaumik
8971617
8971617
asked Mar 24 at 19:14
BroqueBroque
13
13
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Create a variable of AVPlayer insider your class.
let player: AVPlayer = AVPlayer()
Then create AVPlayerItem and set to player.
func prepareToPlayAudio()
let url = newUrl
asset = AVAsset(url: url)
let assetKeys = ["playable", "hasProtectedContent"]
playerItem = AVPlayerItem(asset: asset,
automaticallyLoadedAssetKeys: assetKeys)
playerItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status), options: [.old, .new], context: &playerItemContext)
player = AVPlayer(playerItem: playerItem)
Then add observers to track the state of playing item.
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
guard context == &playerItemContext else
super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
return
if keyPath == #keyPath(AVPlayerItem.status)
let status: AVPlayerItemStatus
if let statusNumber = change?[.newKey] as? NSNumber
status = AVPlayerItemStatus(rawValue: statusNumber.intValue)!
else
status = .unknown
switch status
case .readyToPlay:
// Ready to play.
case .failed:
// Player item error.
case .unknown:
// Item is not ready.
Excellent advice with the Observer! Giving this a shot now
– Broque
Mar 24 at 19:43
After fixing the code to 4.2 standards I receive this error - Cannot pass immutable value as inout argument: 'CGLayerGetContext' is a function
– Broque
Mar 24 at 19:52
Specifically, I would like to stream this mp3 - novelnoise.com/Audio/Acoustic:Folk/bensound-acousticbreeze.mp3
– Broque
Mar 24 at 19:53
I am able to stream within the simulator but not on an actual device.
– Broque
Mar 24 at 20:15
Make sure your actual device isn't on silent mode. It works on ringing mode.
– sinner
Mar 24 at 20:17
|
show 3 more comments
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55327533%2fhow-in-the-hoot-do-you-successfully-stream-a-remote-mp3-file-in-swift-4%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Create a variable of AVPlayer insider your class.
let player: AVPlayer = AVPlayer()
Then create AVPlayerItem and set to player.
func prepareToPlayAudio()
let url = newUrl
asset = AVAsset(url: url)
let assetKeys = ["playable", "hasProtectedContent"]
playerItem = AVPlayerItem(asset: asset,
automaticallyLoadedAssetKeys: assetKeys)
playerItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status), options: [.old, .new], context: &playerItemContext)
player = AVPlayer(playerItem: playerItem)
Then add observers to track the state of playing item.
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
guard context == &playerItemContext else
super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
return
if keyPath == #keyPath(AVPlayerItem.status)
let status: AVPlayerItemStatus
if let statusNumber = change?[.newKey] as? NSNumber
status = AVPlayerItemStatus(rawValue: statusNumber.intValue)!
else
status = .unknown
switch status
case .readyToPlay:
// Ready to play.
case .failed:
// Player item error.
case .unknown:
// Item is not ready.
Excellent advice with the Observer! Giving this a shot now
– Broque
Mar 24 at 19:43
After fixing the code to 4.2 standards I receive this error - Cannot pass immutable value as inout argument: 'CGLayerGetContext' is a function
– Broque
Mar 24 at 19:52
Specifically, I would like to stream this mp3 - novelnoise.com/Audio/Acoustic:Folk/bensound-acousticbreeze.mp3
– Broque
Mar 24 at 19:53
I am able to stream within the simulator but not on an actual device.
– Broque
Mar 24 at 20:15
Make sure your actual device isn't on silent mode. It works on ringing mode.
– sinner
Mar 24 at 20:17
|
show 3 more comments
Create a variable of AVPlayer insider your class.
let player: AVPlayer = AVPlayer()
Then create AVPlayerItem and set to player.
func prepareToPlayAudio()
let url = newUrl
asset = AVAsset(url: url)
let assetKeys = ["playable", "hasProtectedContent"]
playerItem = AVPlayerItem(asset: asset,
automaticallyLoadedAssetKeys: assetKeys)
playerItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status), options: [.old, .new], context: &playerItemContext)
player = AVPlayer(playerItem: playerItem)
Then add observers to track the state of playing item.
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
guard context == &playerItemContext else
super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
return
if keyPath == #keyPath(AVPlayerItem.status)
let status: AVPlayerItemStatus
if let statusNumber = change?[.newKey] as? NSNumber
status = AVPlayerItemStatus(rawValue: statusNumber.intValue)!
else
status = .unknown
switch status
case .readyToPlay:
// Ready to play.
case .failed:
// Player item error.
case .unknown:
// Item is not ready.
Excellent advice with the Observer! Giving this a shot now
– Broque
Mar 24 at 19:43
After fixing the code to 4.2 standards I receive this error - Cannot pass immutable value as inout argument: 'CGLayerGetContext' is a function
– Broque
Mar 24 at 19:52
Specifically, I would like to stream this mp3 - novelnoise.com/Audio/Acoustic:Folk/bensound-acousticbreeze.mp3
– Broque
Mar 24 at 19:53
I am able to stream within the simulator but not on an actual device.
– Broque
Mar 24 at 20:15
Make sure your actual device isn't on silent mode. It works on ringing mode.
– sinner
Mar 24 at 20:17
|
show 3 more comments
Create a variable of AVPlayer insider your class.
let player: AVPlayer = AVPlayer()
Then create AVPlayerItem and set to player.
func prepareToPlayAudio()
let url = newUrl
asset = AVAsset(url: url)
let assetKeys = ["playable", "hasProtectedContent"]
playerItem = AVPlayerItem(asset: asset,
automaticallyLoadedAssetKeys: assetKeys)
playerItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status), options: [.old, .new], context: &playerItemContext)
player = AVPlayer(playerItem: playerItem)
Then add observers to track the state of playing item.
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
guard context == &playerItemContext else
super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
return
if keyPath == #keyPath(AVPlayerItem.status)
let status: AVPlayerItemStatus
if let statusNumber = change?[.newKey] as? NSNumber
status = AVPlayerItemStatus(rawValue: statusNumber.intValue)!
else
status = .unknown
switch status
case .readyToPlay:
// Ready to play.
case .failed:
// Player item error.
case .unknown:
// Item is not ready.
Create a variable of AVPlayer insider your class.
let player: AVPlayer = AVPlayer()
Then create AVPlayerItem and set to player.
func prepareToPlayAudio()
let url = newUrl
asset = AVAsset(url: url)
let assetKeys = ["playable", "hasProtectedContent"]
playerItem = AVPlayerItem(asset: asset,
automaticallyLoadedAssetKeys: assetKeys)
playerItem.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status), options: [.old, .new], context: &playerItemContext)
player = AVPlayer(playerItem: playerItem)
Then add observers to track the state of playing item.
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)
guard context == &playerItemContext else
super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
return
if keyPath == #keyPath(AVPlayerItem.status)
let status: AVPlayerItemStatus
if let statusNumber = change?[.newKey] as? NSNumber
status = AVPlayerItemStatus(rawValue: statusNumber.intValue)!
else
status = .unknown
switch status
case .readyToPlay:
// Ready to play.
case .failed:
// Player item error.
case .unknown:
// Item is not ready.
answered Mar 24 at 19:39
sinnersinner
323112
323112
Excellent advice with the Observer! Giving this a shot now
– Broque
Mar 24 at 19:43
After fixing the code to 4.2 standards I receive this error - Cannot pass immutable value as inout argument: 'CGLayerGetContext' is a function
– Broque
Mar 24 at 19:52
Specifically, I would like to stream this mp3 - novelnoise.com/Audio/Acoustic:Folk/bensound-acousticbreeze.mp3
– Broque
Mar 24 at 19:53
I am able to stream within the simulator but not on an actual device.
– Broque
Mar 24 at 20:15
Make sure your actual device isn't on silent mode. It works on ringing mode.
– sinner
Mar 24 at 20:17
|
show 3 more comments
Excellent advice with the Observer! Giving this a shot now
– Broque
Mar 24 at 19:43
After fixing the code to 4.2 standards I receive this error - Cannot pass immutable value as inout argument: 'CGLayerGetContext' is a function
– Broque
Mar 24 at 19:52
Specifically, I would like to stream this mp3 - novelnoise.com/Audio/Acoustic:Folk/bensound-acousticbreeze.mp3
– Broque
Mar 24 at 19:53
I am able to stream within the simulator but not on an actual device.
– Broque
Mar 24 at 20:15
Make sure your actual device isn't on silent mode. It works on ringing mode.
– sinner
Mar 24 at 20:17
Excellent advice with the Observer! Giving this a shot now
– Broque
Mar 24 at 19:43
Excellent advice with the Observer! Giving this a shot now
– Broque
Mar 24 at 19:43
After fixing the code to 4.2 standards I receive this error - Cannot pass immutable value as inout argument: 'CGLayerGetContext' is a function
– Broque
Mar 24 at 19:52
After fixing the code to 4.2 standards I receive this error - Cannot pass immutable value as inout argument: 'CGLayerGetContext' is a function
– Broque
Mar 24 at 19:52
Specifically, I would like to stream this mp3 - novelnoise.com/Audio/Acoustic:Folk/bensound-acousticbreeze.mp3
– Broque
Mar 24 at 19:53
Specifically, I would like to stream this mp3 - novelnoise.com/Audio/Acoustic:Folk/bensound-acousticbreeze.mp3
– Broque
Mar 24 at 19:53
I am able to stream within the simulator but not on an actual device.
– Broque
Mar 24 at 20:15
I am able to stream within the simulator but not on an actual device.
– Broque
Mar 24 at 20:15
Make sure your actual device isn't on silent mode. It works on ringing mode.
– sinner
Mar 24 at 20:17
Make sure your actual device isn't on silent mode. It works on ringing mode.
– sinner
Mar 24 at 20:17
|
show 3 more comments
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55327533%2fhow-in-the-hoot-do-you-successfully-stream-a-remote-mp3-file-in-swift-4%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown