- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据 UICollectionView 的 indexPath 将图像添加到 AVPlayerViewController contentOverlayView。
当用户选择特定索引路径处的项目时,我希望应用程序根据 UICollectioView indexPath 播放具有特定背景图像的音频,我正在从 API 接收音频文件和图像,并且正在使用 SDWebImage 库下载来自 URL 的图像。
这是我的 collectionView shouldSelectItemAt indexPath 代码:
override func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool {
SVProgressHUD.show()
if let Url = URL(string: musicData[indexPath.row].musicCellAudioFile) {
let musicfileURL = Url
let audioPlayer = AVPlayer(url: musicfileURL)
let controller = AVPlayerViewController()
controller.player = audioPlayer
controller.player = audioPlayer
present(controller, animated: true) {
audioPlayer.play()
}
controller.contentOverlayView?.addSubview(imageFromUrl(musicImageUrlString: musicData[indexPath.row].musicImage))
controller.contentOverlayView?.backgroundColor = UIColor(red: 178/255, green: 178/255, blue: 122/255, alpha: 1)
}else{
print("NO music file")
SVProgressHUD.dismiss()
}
return true
}
这是我的 imageFromUrl 方法:
func imageFromUrl(musicImageUrlString:String) -> UIImageView{
let image = UIImage()
let imageView = UIImageView(image: image)
imageView.sd_setImage(with: URL(string: musicImageUrlString), placeholderImage: UIImage(named: "App-Default"),options:SDWebImageOptions(rawValue: 0), completed: { (image, error, cacheType, imageURL) in
SVProgressHUD.dismiss()
})
return imageView
}
非常感谢您的帮助。
最佳答案
您正在使用返回图像本身的完成 block 。所以你只需要在那里设置图像即可。
func imageFromUrl(musicImageUrlString:String) -> UIImageView {
let image = UIImage()
let imageView = UIImageView(image: image)
imageView.sd_setImage(with: URL(string: musicImageUrlString), placeholderImage: UIImage(named: "App-Default"),options:SDWebImageOptions(rawValue: 0), completed: { (image, error, cacheType, imageURL) in
SVProgressHUD.dismiss()
imageView.image = image
})
return imageView
}
更新
override func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool {
SVProgressHUD.show()
if let Url = URL(string: musicData[indexPath.row].musicCellAudioFile) {
let musicfileURL = Url
let audioPlayer = AVPlayer(url: musicfileURL)
let controller = AVPlayerViewController()
controller.player = audioPlayer
controller.player = audioPlayer
imageFromUrl(musicImageUrlString: "your URL") { (imageView) in
guard let imageView = imageView else { return }
controller.contentOverlayView?.addSubview(imageView)
controller.contentOverlayView?.backgroundColor = UIColor(red: 178/255, green: 178/255, blue: 122/255, alpha: 1)
present(controller, animated: true) {
audioPlayer.play()
}
}
}
else{
print("NO music file")
SVProgressHUD.dismiss()
}
return true
}
还有你的函数
typealias closure = (UIImageView?) -> Void
func imageFromUrl(musicImageUrlString:String, completion: @escaping closure) {
let image = UIImage()
let imageView = UIImageView(image: image)
imageView.sd_setImage(with: URL(string: musicImageUrlString), placeholderImage: UIImage(named: "App-Default"),options:SDWebImageOptions(rawValue: 0), completed: { (image, error, cacheType, imageURL) in
imageView.image = image
completion(imageView)
})
}
关于ios - 将图像添加到 UICollectionView 中的 AVPlayerViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51408917/
在 Apple API Reference 中,它说不要像上面那样子类化 AVPlayerViewController。我想知道为什么。我特意写了一个演示子类AVPlayerViewControlle
当我们播放视频并返回到父窗口时,我遇到内存泄漏。请参阅下面的分配工具读数屏幕截图。 每次,当我弹出 View Controller (显示视频)时,都会有一些与 AVFoundation 相关的对象占
我正在为我的应用程序设计登录屏幕,我希望在其中有动画 Logo 。我创建了一个小视频文件(大约 1 Mb)并使用以下代码创建了 AVPlayerViewController 实例: let video
正确的 UIKit 方法: 根据 Apple 的 WWDC 2019 talk on the subject , AVPlayerViewController 应以模态方式呈现,以利用 API 的所有
我有一个 AVPlayerViewController我用 AVPlayer 初始化还有一些 AVPlayerItem (iOS 10、Xcode 8、Objective C)。AVPlayerVie
所以我试图从这个项目源编辑一些源代码... https://github.com/ariiyu/VideoPlayerSample 所以,当我只是尝试替换视频路径并文件时,它崩溃了,我不知道为什么?
在我的 tvOS 应用程序中,我有一个 AVPlayerViewController,通过显示转场呈现,如果没有找到视频,它会显示警报并展开到上一个 View 。我创建一个警报 Controller
我已经实现了一个标准的 Swift 视频播放器:- let path = NSBundle.mainBundle().pathForResource(assetName, ofType: "m4
我正在使用 AVPlayerViewController 来播放视频。问题是如何检测视频是否开始播放?通常是添加目标,但我找不到可以在该事件中添加的任何目标。有人能帮我吗?提前致谢。 最佳答案 使用来
如果先前的 View Controller 已实例化,我的自定义 AVPlayerViewController 将不会自动旋转。如果我呈现 AVPlayerViewController,它会旋转,如果
我必须快速创建一个视频流应用程序(使用远程网址)。但没有任何确切的视频格式。有时它可以是 m3u8 有时是 mp4 等..但我的视频播放器应该支持来自后端的格式。 此外,当应用程序在后台时,音频应该播
我正在为 iOS 开发一个应用程序,我已经构建了代码,一旦选择了 TableView 中的单元格,它就会转至 AVPlayerViewController 并根据选择的单元格行播放本地视频剪辑。但是当
我们可以将自定义播放速度(0.5、1.0、1.5、2.0)控制添加到 AVPlayerViewController 吗? 有没有一种方法可以使用 UISlider 值更改来刷新速度? 如果正在播放,我
我使用 AVPlayerViewController,我想在视频结束时淡出...我可以捕获视频结束事件,并且我为 AVPlayer 编写的代码可以工作,但对于 AVPlayerViewControll
我在我的项目中添加了一个 DemoVideo.mp4 并将其添加到复制资源文件中。但是当我运行该应用程序时,它不会播放我的视频。这是我的方法。 private func setUpAndPlayVid
我想知道 AVPlayerViewController 何时被关闭或退出全屏以更改其父 View Controller 布局,但我没有找到一个委托(delegate)方法来告诉我它何时发生。 我试过像
我想在使用 AVPlayerViewController 时删除音频和字幕按钮。我按如下方式创建 Controller : // Create the view controller and play
我使用 AVPlayerViewController 播放视频,它工作正常。但是当时设备映射方向运行时它不显示 AVPlayerViewController 状态栏。所以我无法关闭 AVPlayerV
在我的 View Controller 上,我添加了一个 AVPlayerViewController 作为子 Controller 。 它能够播放来自网络的音频和视频文件。但是,我想在按下暂停按钮或
我创建了一个播放器并且大部分时间都运行良好。 在某些情况下(我没有意识到为什么)屏幕视频保持黑色,播放按钮不执行任何操作。 我验证了 url,没问题,这不是问题。 在我的 viewController
我是一名优秀的程序员,十分优秀!