Ios 如何在非全屏的视图中播放视频?
我需要在视图中播放视频,而不是全屏(如facebook)!有人能帮忙吗?我使用的是swift 2和xcode 7。我已经在谷歌上搜索过了,但我所发现的一切都是用AVPlayerViewController和全屏运行的Ios 如何在非全屏的视图中播放视频?,ios,swift,video,Ios,Swift,Video,我需要在视图中播放视频,而不是全屏(如facebook)!有人能帮忙吗?我使用的是swift 2和xcode 7。我已经在谷歌上搜索过了,但我所发现的一切都是用AVPlayerViewController和全屏运行的 Ps:很抱歉英语不好。您可以尝试使用具有所需大小和位置的AVPlayerLayer,并在其上播放视频 示例代码设置播放器和图层: - (void)setupPlayer { AVPlayerItem *playerItem = [AVPlayerItem playerIte
Ps:很抱歉英语不好。您可以尝试使用具有所需大小和位置的
AVPlayerLayer
,并在其上播放视频
示例代码设置播放器和图层:
- (void)setupPlayer
{
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:<Your video item URL>];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playFinished:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];
self.player = [AVPlayer playerWithPlayerItem:playerItem];
self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
self.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer:self.playerLayer];
}
-(无效)设置播放器
{
AVPlayerItem*playerItem=[AVPlayerItem playerItemWithURL:];
[[NSNotificationCenter defaultCenter]添加观察者:自选择器:@selector(playFinished:)名称:AVPlayerItemDidPlayToEndTime通知对象:playerItem];
self.player=[AVPlayer playerWithPlayerItem:playerItem];
self.playerLayer=[AVPlayerLayer-playerlayerwhithplayer:self.player];
self.playerLayer.videoGravity=AVLayerVideoGravityResizeAspectFill;
[self.view.layer addSublayer:self.playerLayer];
}
更多关于和此功能的信息:
class BeginController: UIViewController {
@IBOutlet weak var videoPreviewLayer: UIView!
var player: AVPlayer!
var avpController = AVPlayerViewController()
override func viewDidLoad() {
super.viewDidLoad()
let moviePath = NSBundle.mainBundle().pathForResource("Hello Moto", ofType: "mp4")
if let path = moviePath {
let url = NSURL.fileURLWithPath(path)
self.player = AVPlayer(url: url)
self.avpController = AVPlayerViewController()
self.avpController.player = self.player
avpController.view.frame = videoPreviewLayer.frame
self.addChildViewController(avpController)
self.view.addSubview(avpController.view)
}
// Do any additional setup after loading the view.
}
Swift 3应用吊舱播放机 播客文件:
platform :ios, '10.0'
use_frameworks!
def pods
pod "Player", "~> 0.5.0"
end
target 'YourProject' do
pods
end
YourViewController:
import Player
// Player
var player:Player
// MARK: object lifecycle Player
convenience init() {
self.init(nibName: nil, bundle:nil)
}
required init?(coder aDecoder: NSCoder) {
self.player = Player()
super.init(coder: aDecoder)
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
self.player = Player()
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
deinit {
self.player.willMove(toParentViewController: self)
self.player.view.removeFromSuperview()
self.player.removeFromParentViewController()
}
private func playeVideo(url: URL) {
player.playerDelegate = self
player.playbackDelegate = self
player.view.frame = self.view.bounds // your frame here
self.addChildViewController(self.player)
self.view.insertSubview(player.view, at: 0)
player.url = url
self.player.playFromBeginning()
}
请在此查看更多详细信息
用于播放器停止或暂停
func stopVideo() {
player.pause()
}
此代码适用于我,请试用。好的,我会尽快尝试并发布反馈
@IBOutlet weak var backView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
playVideo()
}
private func playVideo() {
guard let path = Bundle.main.path(forResource: "video", ofType:"mp4") else {
debugPrint("video.mp4 not found")
return
}
let player = AVPlayer(url: URL(fileURLWithPath: path))
let playerController = AVPlayerViewController()
playerController.player = player
--- start from here :
let playerLayerAV = AVPlayerLayer(player: player)
//now we set the size of frame to be like the view ("backview")
playerLayerAV.frame = backView.bounds
// the backview is the view i'm using it to insert a video
backView.layer.addSublayer(playerLayerAV)
player.play()
}
@IBOutlet weak var backView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
playVideo()
}
private func playVideo() {
guard let path = Bundle.main.path(forResource: "video", ofType:"mp4") else {
debugPrint("video.mp4 not found")
return
}
let player = AVPlayer(url: URL(fileURLWithPath: path))
let playerController = AVPlayerViewController()
playerController.player = player
--- start from here :
let playerLayerAV = AVPlayerLayer(player: player)
//now we set the size of frame to be like the view ("backview")
playerLayerAV.frame = backView.bounds
// the backview is the view i'm using it to insert a video
backView.layer.addSublayer(playerLayerAV)
player.play()
}