如何在 iOS 中的 UITableViewCell 中播放视频(自动播放)

2023-11-21

我正在播放视频UITableViewCell。为此,我使用以下代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *VideoCellIdentifier = @"VideoCell";

    NSDictionary *_response_data = [self.response objectAtIndex:indexPath.row];

    VideoCustomCell *cell = (VideoCustomCell *) [tableView dequeueReusableCellWithIdentifier:VideoCellIdentifier];

    if (cell == nil) {
        NSArray *topLevelObjects;
        topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"VideoCustomCell" owner:self options:nil];
        for (id currentObject in topLevelObjects){
            if ([currentObject isKindOfClass:[UITableViewCell class]]){
                cell =  (VideoCustomCell *) currentObject;
                cell.delegate  = self;
                break;
            }
        }
    }

    avPlayer = [[AVPlayer playerWithURL:[NSURL URLWithString:[_response_data valueForKey:@"media_id"]]] retain];
    avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayer];
    avPlayerLayer.frame = cell.video_player_view.layer.bounds;
    avPlayerLayer.videoGravity = AVLayerVideoGravityResize;
    [cell.video_player_view.layer addSublayer: avPlayerLayer];
    [avPlayer play];

    return cell;
}

视频可以正常播放,但我只想一次只播放一个视频。播放完全可见的单元格的视频。


使用这两种滚动和处理播放视频的方法。当 tableview 停止滚动时,这两个方法都会以任一方式调用

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    if(![scrollView isDecelerating] && ![scrollView isDragging]){

        [self playVideo];
    }
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    if(!decelerate){

        [self playVideo];
    }
}


-(void)playVideo
{
    if(aryTableData.count==0){
        return;
    }

    for(UITableViewCell *cell in [tblView visibleCells])
    {
        VideoCell *ccell = (VideoCell*)cell;

        CGRect ccellRect = [APP_DEL.window convertRect:ccell.bounds fromView:ccell];

        // NSLog(@"--Cell frame %f",ccellRect.origin.y);

        //Set Condition of cell visible within some range
        if(ccellRect.origin.y>-200)
        {
            // Handle Video Play

            int row = [[tblView indexPathForCell:ccell] row];
            NSString *strUrl = [[aryTableData objectAtIndex:row] valueForKey:@"video_url"] ;
            [ccell startVideoFromURL:strUrl]; //You can handle video play in cell or table view
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iOS 中的 UITableViewCell 中播放视频(自动播放) 的相关文章

  • ui 测试 xcode,如何使用 cellquery 点击表视图单元格按钮

    我目前正在为我的应用程序进行 ui 测试 并一直点击我的应用程序的登录按钮 我无法找到我提供了标识符注册按钮的元素 该元素是索引中的第三个 这不是问题 let cellQuery self app tables cells element
  • 在 swift3 中结合平移、alpha 和缩放动画

    我是 iOS Swift 开发的新手 我尝试将三个参数组合在一个动画中 但没有成功 我认为解决方案就在这里 Apple Dev Core 动画编程指南 https developer apple com library content do
  • 使用 Simulator 时 Xcode 10 中的屏幕截图尺寸错误

    我正在尝试使用 Xcode 10 模拟器为 iTunes 制作屏幕截图 但图像大小错误 我读过Debug gt Optimize Rendering for Window Scale会有帮助 但在 Xcode 中没有这样的选项 有人有这个问
  • 如何提高包含大量小图像的 UCollectionView 的性能?

    在我的 iOS 应用程序中我有UICollectionView显示大约 1200 个小 35x35 点 图像 图像存储在应用程序包中 我正确地重用了UICollectionViewCell但仍然存在性能问题 具体取决于我处理图像加载的方式
  • iOS:Swift - 如何在触摸时向地图添加精确定位并获取该位置的详细地址?

    我想在 iOS 地图的触摸上添加注释并获取各个位置的详细地址 地标 我如何在 Swift 中实现这一目标 提前致谢 要对地图上的触摸做出反应 您需要为地图视图设置点击识别器 in viewDidLoad let gestureRecogni
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • React Native:不透明视图内的透明视图

    我想用不透明框架和透明中心显示相机的视图 就像图片中的一样 黑色部分是相机的视图 我正在寻找具有纯反应本机组件的解决方案 没有额外的库 例如https github com gilbox react native masked view h
  • 将子视图控制器的视图添加到父视图控制器的子视图

    我想添加一个表视图控制器作为容器视图控制器的子视图控制器 如下所示 根据苹果公司的查看控制器编程指南 http developer apple com library ios featuredarticles ViewControllerP
  • 两者都实现了类。将使用两者之一

    我有一个项目 它具有使用 SocketRocket 的依赖项 通过 CocoaPods 安装 并从 HeapAnalytics 导入了静态库 显然 HeapAnalytics 库已经使用了 SocketRocket 编译时没有出现错误 但在
  • 如何在 UICollectionView 的节标题中动态添加标签和按钮?

    请帮助我如何水平添加标签和水平添加类似的按钮 但每个按钮应像另一个部分一样在每个标签的下方对齐 这应该在 UICollectionView 的标题中动态发生 因为标签和按钮的数量根据我的数据 我想制作一种 Excel 类型的布局 并在标题中
  • ViewWillAppear 没有被 UISplitViewController 调用

    背景和目标 我有一个基于 UISplitViewController 的 iPad 应用程序 到目前为止它支持 4 个方向 但现在我想将其锁定为仅横向 我变了shouldAutorotateToInterfaceOrientation左视图
  • 为什么使用[ClassName alloc]而不是[[self class] alloc]?

    我正在读马克 达尔林普尔 Mark Dalrymple 的著作在 Mac 上学习 Objective C 仅在协议章节 所以仍然相对较新 并试图弄清楚一些事情 为什么要通过类自己的名称来引用它 如果我有一个叫做Foo 为什么我会想写 比如说
  • -[EAGLContext renderbufferStorage:fromDrawable:] 第二次失败?

    我正在开发一个 iOS openGL ES 应用程序 我正在做通常的 EAGLView ES2Render 的事情 启动时 使用以下代码成功创建 frambuffer BOOL createFramebuffers EAGLContext
  • 将带有地理位置数据的照片保存到照片库 Swift 3

    如何使用地理位置元数据将照片保存到照片库 我已请求 并允许 应用程序访问用户位置 private func allowAccessToUserLocation locationManager CLLocationManager locati
  • NSURL URLWithString:引发异常

    简而言之 NSURL URLWithString 似乎引发了一个例外 根据文档 如果字符串格式错误 则返回 nil 没有提到在任何情况下都会引发异常 除此之外 我还对 URL 进行编码并检查nil在将字符串转换为 URL 之前 任何人都可以
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • 如何确定iPhone铃声的当前级别?

    我正在使用 AVSystemController 将 iPhone 铃声静音 但我不知道如何确定铃声的当前级别 有任何想法吗 PS 是的 我知道使用 AVSystemController 可能会导致应用程序被 App Store 禁止 这不
  • 用 UIView 像翻书一样翻页?

    我正在尝试在之间切换UIViews让它看起来就像你正在翻书的一页 The UIViewAnimationTransitionCurlUp如果我能让它向左或向右卷曲 那就非常接近了 这可能吗 我尝试过使用CATRansition但没有一种动画
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke

随机推荐

  • 不使用 Android 导航抽屉显示叠加层

    我想知道是否可以删除最近实现的导航抽屉所做的自动覆盖 第二张图的灰色层 你只需要设置setScrimColor int color 给你的DrawerLayout mDrawerLayout setScrimColor Color WHIT
  • postgresql:共享内存不足?

    我正在使用 Python 和 psycopg2 运行大量查询 我创建了一个包含约 200 万行的大型临时表 然后使用以下命令一次从中获取 1000 行cur fetchmany 1000 并运行涉及这些行的更广泛的查询 不过 广泛的查询是自
  • 如何使用 StoreKit 2 进行恢复?

    iOS 15 引入了 StoreKit 2 我正在研究它 看看是否可以在我现有的应用程序中采用它 但我不知道该怎么做 特别是 我不知道如何实现所需的恢复功能 例如 如果用户删除了我的应用程序 我想我们应该使用Transaction late
  • 当我向 Firebase 实时数据库添加新值时如何保存当前日期/时间

    当我通过控制面板向 Firebase 实时数据库添加新值时 我想将当前日期 时间保存在特定字段中 我怎样才能做到这一点 请帮我 Answer recommended by Google Cloud Collective 最佳实践是将数据保存
  • JSP/JSTL 中的嵌套表达式

    我使用 JSP 作为视图 使用 Spring MVC 3 0 作为控制器 在我的 JSP 中 我想显示当前的日期时间 为此我有以下代码
  • Linux 内核模块字符设备权限

    是否可以在以 mod 666 启动的 Linux 内核模块中创建字符设备 现在它总是 600 由 root 拥有 我必须 chmod 它 我可以创建 udev 条目来解决它 但我真的宁愿模块自动执行它 是否可以 我在 cdev init 或
  • 异步/等待返回 Promise { } [重复]

    这个问题在这里已经有答案了 我的问题是 尽管我使用了 async await 为什么这个日志还是 promise pending 我检查了类似的问题和答案 看起来应该没问题 但事实并非如此 我该如何改变它才能得到结果 为什么 谢谢 cons
  • 带有 CloudFront 的区域 API 网关

    亚马逊发布新功能 支持区域 API 端点 这是否意味着我可以在两个区域部署相同的 API 代码 并向 Lambda 微服务发送请求 这将是两个不同的 Https 端点 CloudFront 是否为我分配流量 有代码片段吗 这是否意味着我可以
  • DART HTTP 服务器中带有 SSL 证书的 HTTPS

    Dart HTTP 服务器支持 HTTPS 吗 如果是这样 您如何指定证书 如果没有 是否有其他替代方案 例如社区创建的包 是的 Dart 支持 https 查看文档here和一个测试here 相关线路 HttpServer bindSec
  • 为图层属性设置动画以简单地更改其他属性?

    想象一个CAGradientLayer 制作动画非常容易 startPoint and endPoint 现在想象一个漂浮物spinLike这只是同时设置它们 因此 您可以简单地制作动画 而不是使用两个不同的动画spinLike 所以像 c
  • 如何忽略地图框图层上的鼠标事件

    我在 Mapbox 地图上构建了一个标记 当用户将鼠标悬停在其上时 该标记如下所示 我遇到的问题是文档图标是与背景图钉不同的层 这样用户就可以上传自定义图标 当使用mouseover and mouseleave事件在背景图钉层上创建悬停弹
  • 按属性名称(字符串值)排序列表? [复制]

    这个问题在这里已经有答案了 我有一个清单objects 如何使用属性名称订购此列表 string orderbyField Code List l FillList l l OrderBy o gt orderbyField 我可以为这个问
  • GeoDjango:我可以在用户管理中内联使用 OSMGeoAdmin 吗?

    Profile包含一个PointField 我在 ProfileAdmin 中使用了 OSMGeoAdmin 如下 class ProfileAdmin admin OSMGeoAdmin model Profile 但无法弄清楚如何在内联
  • 如何在浏览器控制台中访问 *angular 2* 组件的数据?

    我有一个 DisplayComponent 我想在浏览器 开发人员的控制台中查看它的数据 我怎样才能看到它 示例来自Angular2 分步指南 function DisplayComponent this myName Alice 我怎么看
  • 使用 spring-mvc 将异常序列化为 JSON

    RequestMapping ResponseBody public SearchResponse search SearchRequest request throws SearchException 我想回复请求者 JSON 序列化搜索
  • 使用 PHP 防止表中出现重复记录 [重复]

    这个问题在这里已经有答案了 我想防止使用 PHP 的表单中的重复值进入数据库表 我创建了以下内容 具有名为的表的数据库clients CREATE TABLE clients firstName varchar 20 lastName va
  • 同步函数内的异步调用

    我正在尝试异步填充我的缓存 static ConcurrentDictionary
  • Visual Studio 2010 的 Latex 插件

    我正在寻找 Visual Studio 2010 的乳胶插件 最好是免费的 它必须具备的特点 代码折叠 语法高亮 自动完成 错误处理 我不认为VS有什么可用的 作为替代方案 我使用 eclipse 和 texlipse 插件 它具有您列表中
  • 在 Resque 作业期间,Rails.root 指向生产环境中的错误目录

    我有两个作业同时排队 一个工作人员连续运行它们 这两个作业都从builds 目录并将它们放入我的 Rails 项目根目录中的临时文件夹中 第一个作业总是会成功 永远不会出现问题 哪个作业先运行也并不重要 第一个会起作用 第二个在尝试复制文件
  • 如何在 iOS 中的 UITableViewCell 中播放视频(自动播放)

    我正在播放视频UITableViewCell 为此 我使用以下代码 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath inde