ios AVPlayer Button action not getting triggedUITableViewCell, show delete button on swipeLooping a video with AVFoundation AVPlayer?Check play state of AVPlayerFast switching between videos using AVFoundationHow to reduce iOS AVPlayer start delayAVPlayer pauses for no obvious reasonGet the length of a StringControl Center, doesn't pause/play my audio streamThis action could not be completed. Try Again (-22421)Any reasons why AVQueuePlayer would sometimes work/sometimes not?
What is the most common color to indicate the input-field is disabled?
What is the idiomatic way to say "clothing fits"?
Unlock My Phone! February 2018
Could the museum Saturn V's be refitted for one more flight?
Can a virus destroy the BIOS of a modern computer?
How do I gain back my faith in my PhD degree?
Am I breaking OOP practice with this architecture?
How could indestructible materials be used in power generation?
Can I run a new neutral wire to repair a broken circuit?
Arrow those variables!
Why didn't Miles's spider sense work before?
Do scales need to be in alphabetical order?
Is there a hemisphere-neutral way of specifying a season?
What is a romance in Latin?
What type of content (depth/breadth) is expected for a short presentation for Asst Professor interview in the UK?
How can saying a song's name be a copyright violation?
What method can I use to design a dungeon difficult enough that the PCs can't make it through without killing them?
Expand and Contract
Method Does Not Exist error message
Personal Teleportation: From Rags to Riches
Im going to France and my passport expires June 19th
Intersection Puzzle
Can my sorcerer use a spellbook only to collect spells and scribe scrolls, not cast?
Why was the shrinking from 8″ made only to 5.25″ and not smaller (4″ or less)?
ios AVPlayer Button action not getting trigged
UITableViewCell, show delete button on swipeLooping a video with AVFoundation AVPlayer?Check play state of AVPlayerFast switching between videos using AVFoundationHow to reduce iOS AVPlayer start delayAVPlayer pauses for no obvious reasonGet the length of a StringControl Center, doesn't pause/play my audio streamThis action could not be completed. Try Again (-22421)Any reasons why AVQueuePlayer would sometimes work/sometimes not?
I'm trying to add button on top of a video player. Button is getting added but the click event is not getting triggered from iOS simulator.
However, the event gets triggered accurately when I do it programmatically.
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
//btn.sendActions(for: .touchUpInside)
//controller.contentOverlayView?.addSubview(btn)
playerLayer.addSublayer(btn.layer)
self.view.layer.addSublayer(playerLayer)
player.play()
Please help. How can I fix this?
ios swift avplayer
add a comment |
I'm trying to add button on top of a video player. Button is getting added but the click event is not getting triggered from iOS simulator.
However, the event gets triggered accurately when I do it programmatically.
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
//btn.sendActions(for: .touchUpInside)
//controller.contentOverlayView?.addSubview(btn)
playerLayer.addSublayer(btn.layer)
self.view.layer.addSublayer(playerLayer)
player.play()
Please help. How can I fix this?
ios swift avplayer
Could you please check my answer ?
– Prashant Tukadiya
Mar 12 at 6:13
add a comment |
I'm trying to add button on top of a video player. Button is getting added but the click event is not getting triggered from iOS simulator.
However, the event gets triggered accurately when I do it programmatically.
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
//btn.sendActions(for: .touchUpInside)
//controller.contentOverlayView?.addSubview(btn)
playerLayer.addSublayer(btn.layer)
self.view.layer.addSublayer(playerLayer)
player.play()
Please help. How can I fix this?
ios swift avplayer
I'm trying to add button on top of a video player. Button is getting added but the click event is not getting triggered from iOS simulator.
However, the event gets triggered accurately when I do it programmatically.
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
//btn.sendActions(for: .touchUpInside)
//controller.contentOverlayView?.addSubview(btn)
playerLayer.addSublayer(btn.layer)
self.view.layer.addSublayer(playerLayer)
player.play()
Please help. How can I fix this?
ios swift avplayer
ios swift avplayer
edited Mar 9 at 5:21
Prashant Tukadiya
7,78622450
7,78622450
asked Mar 8 at 22:24
phoenix2010phoenix2010
2,080189
2,080189
Could you please check my answer ?
– Prashant Tukadiya
Mar 12 at 6:13
add a comment |
Could you please check my answer ?
– Prashant Tukadiya
Mar 12 at 6:13
Could you please check my answer ?
– Prashant Tukadiya
Mar 12 at 6:13
Could you please check my answer ?
– Prashant Tukadiya
Mar 12 at 6:13
add a comment |
2 Answers
2
active
oldest
votes
You are not able to press the button using storyboard button because it is behind the layer.
You have two options.
1) In storyboard Create a separate view where you can add your video layer instead of adding directly to main view and button top of it
2) Change Z position of button
button.layer.zPosition = 1
add a comment |
The problem is that you are adding the button's layer rather than adding the button as a subview. Here's the full code you can cut and paste.
import UIKit
import AVFoundation
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
view.addSubview(btn)
player.play()
@objc func pressButton(button: Any)
print("PRESSED")
The main thing though was simply the view.addSubview(btn).
add a comment |
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%2f55071829%2fios-avplayer-button-action-not-getting-trigged%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You are not able to press the button using storyboard button because it is behind the layer.
You have two options.
1) In storyboard Create a separate view where you can add your video layer instead of adding directly to main view and button top of it
2) Change Z position of button
button.layer.zPosition = 1
add a comment |
You are not able to press the button using storyboard button because it is behind the layer.
You have two options.
1) In storyboard Create a separate view where you can add your video layer instead of adding directly to main view and button top of it
2) Change Z position of button
button.layer.zPosition = 1
add a comment |
You are not able to press the button using storyboard button because it is behind the layer.
You have two options.
1) In storyboard Create a separate view where you can add your video layer instead of adding directly to main view and button top of it
2) Change Z position of button
button.layer.zPosition = 1
You are not able to press the button using storyboard button because it is behind the layer.
You have two options.
1) In storyboard Create a separate view where you can add your video layer instead of adding directly to main view and button top of it
2) Change Z position of button
button.layer.zPosition = 1
answered Mar 9 at 5:20
Prashant TukadiyaPrashant Tukadiya
7,78622450
7,78622450
add a comment |
add a comment |
The problem is that you are adding the button's layer rather than adding the button as a subview. Here's the full code you can cut and paste.
import UIKit
import AVFoundation
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
view.addSubview(btn)
player.play()
@objc func pressButton(button: Any)
print("PRESSED")
The main thing though was simply the view.addSubview(btn).
add a comment |
The problem is that you are adding the button's layer rather than adding the button as a subview. Here's the full code you can cut and paste.
import UIKit
import AVFoundation
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
view.addSubview(btn)
player.play()
@objc func pressButton(button: Any)
print("PRESSED")
The main thing though was simply the view.addSubview(btn).
add a comment |
The problem is that you are adding the button's layer rather than adding the button as a subview. Here's the full code you can cut and paste.
import UIKit
import AVFoundation
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
view.addSubview(btn)
player.play()
@objc func pressButton(button: Any)
print("PRESSED")
The main thing though was simply the view.addSubview(btn).
The problem is that you are adding the button's layer rather than adding the button as a subview. Here's the full code you can cut and paste.
import UIKit
import AVFoundation
class ViewController: UIViewController
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else
return
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
// Create a new AVPlayerViewController and pass it a reference to the player.
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
let btn = UIButton(type: .roundedRect)
btn.backgroundColor = UIColor.yellow
btn.setTitle("Do stuff 1", for: .normal)
btn.frame = CGRect(x: 0, y: 330, width: 300, height: 300)
btn.isUserInteractionEnabled = true
btn.addTarget( self, action: #selector(self.pressButton(button:)), for: .touchUpInside)
view.addSubview(btn)
player.play()
@objc func pressButton(button: Any)
print("PRESSED")
The main thing though was simply the view.addSubview(btn).
answered Mar 10 at 14:23
drewsterdrewster
1,3521322
1,3521322
add a comment |
add a comment |
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%2f55071829%2fios-avplayer-button-action-not-getting-trigged%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
Could you please check my answer ?
– Prashant Tukadiya
Mar 12 at 6:13