Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ios 7.2版本短视频demo在录制后,编辑视频选择音乐crash

ios 7.2版本短视频demo在录制后,编辑视频选择音乐crash

原创
作者头像
小明同学接音视频
发布于 2021-03-05 06:11:30
发布于 2021-03-05 06:11:30
5090
举报

问题背景

由于原来项目是在7.2版本的demo基础上进行修改的,所以无法升级到8.4,目前在7.2版本会出现选择背景音乐后crash的情况,在8.4的demo上并不会出现这个问题。

问题原因

demo在选择音乐的时候没有将音乐文件的后缀带到路径上面,所以在SDK播放背景音乐的时候崩溃了。

解决方案

更换demo的以下方法即可

代码语言:objective-c
AI代码解释
复制
- (void)_downloadBGMAction:(TCBGMElement*)current {
  const BOOL needOverride = YES;
  __strong UGCKitBGMHelper* strong = self;
  if(strong != nil){
    if([[_currentEle netUrl] isEqualToString:[current netUrl]]){
      if([_currentTask state] == NSURLSessionTaskStateRunning){
        BGMLog(@"暂停:%@", [current name]);
        [_currentTask suspend];
        return;
      }
      else if([_currentTask state] == NSURLSessionTaskStateSuspended){
        BGMLog(@"恢复:%@", [current name]);
        [_currentTask resume];
        return;
      }
    }
    else{
      if(_currentTask){
        if([_currentTask state] != NSURLSessionTaskStateCompleted){
          [_currentTask cancel];
          [strong.delegate onBGMDownloading:_currentEle percent:0];
        }
        _currentTask = nil;
      }
    }
    NSString* localListPath = nil;
    NSString* url = [current netUrl];

    __block NSString* justName = [current name];
    if (0 == justName.pathExtension.length) {
      NSString *bgmExtension = url.pathExtension.length ? url.pathExtension : @"mp3";
      justName = [justName stringByAppendingPathExtension:bgmExtension];
    }
    if (needOverride) {
      localListPath = [_bgmPath stringByAppendingPathComponent:justName];
    } else {
      justName = [NSString stringWithFormat:@"%@1.%@", [justName stringByDeletingPathExtension], [[current name] pathExtension]];
      localListPath = [_bgmPath stringByAppendingPathComponent:justName];
    }
    __weak __typeof(self) weak = self;
    NSURLSessionDownloadTask* task = [self downloadFile:url dstUrl:localListPath callback:^(float percent, NSString* path){
      __strong UGCKitBGMHelper* strong = weak;
      if(strong){
        dispatch_queue_t queue = strong->_queue;
        if(percent < 0){
          dispatch_async(queue, ^{
            [strong.delegate onBGMDownloadDone:current];
          });
        }
        else{
          TCBGMElement* ele = [strong->_bgmDict objectForKey:[current netUrl]];
          if(path != nil){
            ele.localUrl = [NSString stringWithFormat:@"Documents/bgm/%@", justName];
            ele.isValid = [NSNumber numberWithBool:true];
            dispatch_async(queue, ^{
              [strong.delegate onBGMDownloadDone:ele];
            });
            [strong saveBGMStat:ele];
          }else{
            dispatch_async(queue, ^{
              [weak.delegate onBGMDownloading:ele percent:percent];
            });
          }
        }
      }
    }];
    _currentTask = task;
    _currentEle = current;
  }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AFNetworking源码探究(十九) —— UIKit相关之几个分类
上一篇主要讲述了AFNetworkActivityIndicatorManager数据加载指示器。这一篇主要讲述了UIKit的几个分类。
conanma
2021/09/03
4960
share extension
默认继承 SLComposeViewController  则弹跳框也是固定死的  如果要diy 请继承uiviewcontroller  可以在storyboard或者代码写布局  实现 NSURLSessionDelegate,NSURLSessionDownloadDelegate
conanma
2021/05/11
9500
iOS 使用 socket 即时通信(非第三方库)效果模型图分析UI方面代码部分Demo地址
因为大家学C 语言和linux基础时肯定都有接触,客户端和服务端的通信也都了解过,加上现在很多开放的第三方库都不需要我们来操作底层的通信。
gwk_iOS
2018/08/23
8100
iOS 使用 socket 即时通信(非第三方库)效果模型图分析UI方面代码部分Demo地址
[iOS源码笔记]·第三方网络下载处理框架:AFNetworking网络下载处理(调用栈与缓存策略篇)
看到这里,或许可以看manager对象的AFHTTPSessionManager类型更深层定义。
陈满iOS
2018/09/10
1.5K0
[iOS源码笔记]·第三方网络下载处理框架:AFNetworking网络下载处理(调用栈与缓存策略篇)
移动直播集成(IOS版)
最近在腾讯云集成了一下移动直播的SDK,从0到1的整个过程,中途遇到的问题也详细地给大家列举出来,希望对将要用到腾讯云移动直播产品的开发者们,起到一点点作用。若有不足的地方欢迎指出并赐教,谢谢!
rkChen
2020/07/07
1.9K0
内卷吧! iOS开发君
前段时间因为课程需要 , 我出了一套iOS考试试卷 想着VIP大家做得非常不错. 带着分享的精神也开源了出来 一套iOS底层试卷-我想和你分享 结果反响巨大! 很多靓仔靓女纷纷私聊我....大致分为以下两种:
CC老师
2022/01/12
3570
iOS开发中常用的宏
常用的宏 打印日志 //DEBUG 模式下打印日志,当前行 #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define DLog(...) #endif //重写NSLog,Debug模式下打印日志和当前行数 #if DEBUG #define NSLog(FORMAT, ...) fp
码客说
2019/10/22
4590
NSURLSession与NSURLConnection区别
2017-05-0217:47:05 发表评论 425℃热度 使用现状 普通任务和上传 下载任务方式 请求方法的控制 断点续传的方式 配置信息 NSURLSessionDataTask NSURLSessionDownloadTask NSURLSessionUploadTask 结语 目录 今天去面试,被问了一道AFNetworking2.0和3.0有什么区别,当时心想,这谁不知道啊,随口答到:2.0使用的NSURLConnection,3.0使用的是NSURLSession,人家又
timhbw
2018/05/03
1.6K0
iOS开发实战-时光记账Demo 网络版效果分析客户端部分服务端部分Demo地址简书主页
user表 相反Tally与Users的关系就是:一对多
gwk_iOS
2018/08/23
2.7K0
iOS开发实战-时光记账Demo 网络版效果分析客户端部分服务端部分Demo地址简书主页
iOS面试题----实践向
前言 很多人都说熟悉UIKit,那对于常见的API是否熟悉? 多线程是前端经久不衰的考点。 大家对于Block的weak-strong dance都耳熟能详,是否清楚知道每一个引用背后的持有者,以及对象的具体释放时机? 来试试这4道精挑细选的题目。 正文 题目1、UIImage相关 看下面一段代码, 保存到相册的是什么?(从格式、形状去描述) - (void)testUIImage { UIImage *testImage; UIGraphicsBeginImageContext(C
落影
2018/04/27
8430
iOS面试题----实践向
iOS iOS与html进行交互
实现的 效果就是上边那样:首先通过webview 进行网络请求 然后进行显示。          然后点击下一页的按钮 通过js的响应显示另一个网页          最后通过下一页的按钮可以返回到首页。     本文仅仅是h5跟ios 的交互的入门 所以没有做细致的描述。 首先先说一下思路:我的项目中是那样的:首先h5从后台拿到数据,然后我请求h5的界面,然后通过h5的按钮进行选择,通过ios控制按钮到那个界面。 这个小demo不涉及数据传输,只是界面的交互。 1 我自己写了两个小网页。 代码如下 首页的
用户1219438
2018/02/01
2.5K0
React Native iOS原生模块开发实战|教程|心得
尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://www.devio.org) 告诉大家一个好消息,为大家精心准备的React Native视频教程发布了,大家现可以看视频学React Native了。 前言 一直想写一下我在React Native原生模块封装方面的一些经验和心得,来分享给大家,但实在抽不开身,今天看了一下日历发现马上就春节了,所以就赶在春节之前将这篇博文写好并发布(其实是两篇:要看Android篇的点这里《React Native Android原生模块
CrazyCodeBoy
2018/05/07
2.2K0
React Native iOS原生模块开发实战|教程|心得
六天完成一个简单iOS App - 第三天
第三天任务: 今天主要任务完成我的模块的搭建。 我的页面的搭建 清除缓存功能 方法抽取总结 我的页面的搭建 我们先来看一下我的界面内容 我的界面分析 通过上面图片可以看出,我的界面是一个非常简单的ta
xx_Cc
2018/05/10
9420
AFNetworking源码探究(二十) —— UIKit相关之AFImageDownloader图像下载
上一篇主要介绍了AFNetworkActivityIndicatorManager这个与UIKit相关的类,这一篇主要介绍AFImageDownloader有关图像的下载。
conanma
2021/09/03
9630
多媒体-图片、音频、视频的基本实现
AVFoundation的录音和播放 音频的录制与播放主要和三个类有关AVAudioSession,AVAudioRecorder,AVAudioPlayer。 AVAudioSession AVAudioSession类由AVFoundation框架引入,每个iOS应用都有一个音频会话,这个会话可以被AVAudioSession类的sharedInstance类方法访问,如下:
進无尽
2018/09/12
2.2K0
面试iOS 机会在自己手中
前言 面试是我们工作的敲门砖,正好现在也到了我们金九银十的招聘季,在这我汇出32个面试题希望能帮到正在面试的你。 加油(同样有不足的地方还望指出我们一起商讨,有兴趣的可以加我的iOS交流群: 6423
编程怪才-凌雨画
2020/09/15
5850
面试iOS 机会在自己手中
[iOS源码笔记]·第三方网络图片处理框架:SDWebImage网络下载及缓存管理策略
typedef void(^SDExternalCompletionBlock)(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL);
陈满iOS
2018/09/10
2.3K0
[iOS源码笔记]·第三方网络图片处理框架:SDWebImage网络下载及缓存管理策略
iOS SDWebimage 源码阅读
简介 SDWebimage是 iOS 的图片加载框架。它支持从网络中下载且缓存图片,并设置图片到对应的 UIImageView 控件或者 UIButton 控件。在项目中使用 SDWebImage 来管理图片加载相关操作可以极大地提高开发效率,让我们更加专注于业务逻辑实现。
赵哥窟
2018/12/18
1.3K0
AFNetworking 源码阅读(v3.2.1)
AFNetworking项目地址 https://github.com/AFNetworking/AFNetworking 下载打开后目录 AFNetworking 1.AFNetwork
用户2215591
2018/07/05
2.2K0
AVFoundation | 封装一个好用的视频播放器
AVFoundation是苹果在iOS和OS X系统中用于处理基于时间的媒体数据的Objective-C框架. 供使用者来开发媒体类型的应用程序。
网罗开发
2021/01/29
1.2K0
AVFoundation | 封装一个好用的视频播放器
相关推荐
AFNetworking源码探究(十九) —— UIKit相关之几个分类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档