网易云信(音视频sdk)一面凉经

项目:

1、讲一讲最近几年做的项目里面自己做的功能,然后实现的能力和一些解决的问题

2、这期间除了维护有做过什么优化或者解决什么问题吗?

2.1、app出图速度、回放信令优化、d3d渲染优化(被问到目标分辨率,答实现64路D1不卡顿)

3、项目里有文件流格式吗?,你熟悉这些格式吗?(简单讲了ts和flv)

4、播放器有支持媒体流的快慢放吗?(回放流更多的是依赖设备发流速度,本地文件可以内部控制)==》音频的快放是怎么实现呢?(重采样)==》有做过变速不变调的快放吗?(不支持)==》播放器的视频源旋转做过吗?(没做过,讲了讲原理)

5、播放器所有的流程里面,能不能讲一个比较熟悉的功能的线程模型,就是线程是怎么处理的?(讲了解码线程的流程)

6、数据是怎么驱动,比如播放是定时器驱动还是有别的数据源的一个数据读入来驱动,比如播放的时间间隔是怎么出发的。

7、对音频播放这一块有了解吗?(讲了三方组件的播放流程,可能面试官是想听到更底层的原理)

CC++基础能力部分

1、windows上最基本的消息机制和他们同步异步是怎么实现的?

2、windows动态库Mt和Md的差异?(dll的多种模式)

3、多态的实现原理

4、父子类的安全转换怎么操作?(dynamic_cast)

5、父子类的构造和析构顺序?

6、菱形继承会有哪些问题,可以怎么解决?(问题:调用顶层父类的成员时出现二义性,因为第二层的两个父类都包含顶层父类的成员,浪费内存,访问时需要通过类作用域去访问,,,第二层父类可通过虚继承顶层父类解决,会包含一个虚基类指针)

7、容器里面vector和list有啥区别?(vector底层是数组、list底层是双向链表)

8、对vector进行部分元素删除,函数传入两个参数,vector和存有待删除下标的list,保证安全删除vector里的元素(觉得需要从下标最大的开始删除,因为删除vector元素涉及内存向前拷贝,如果从前面开始删除元素,那么后面的下标将不再指向原来的位置,不安全)

9、设计一个图片资源管理器,要加载一堆图片资源,图片资源是动态加载的,比如一个应用里面要加载一堆图片资源,但这些图片资源是动态加载的,比如说我当前场景需要一张图片,我就向我的图片资源管理器去取,等我这个场景使用完的时候,我这个图片资源管理器要释放掉,你如何去实现这个图片资源管理器,包括它的接口设计和数据管理?

9.1本应用中需要使用图片的时候,它能动态的加载图片,有重复使用时可以不重复去加载资源,等所有的场景都不使用这个资源时能够动态释放图片资源

9.2根据上个问题回答的内容中引出智能指针,并问了引用计数

10、线程同步有哪些方式(线程同步的方式主要有: 临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)。

1)临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。

2)互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享。

3)信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。

4)事 件: 通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作。

)==》数据同步用什么?

11、在同一个线程里面重复加锁可以吗?

12、通过互斥锁去实现一个可以线程同步的锁应该怎么样设计?

13、信号量是怎么工作的?

14、如何实现一个定时操作?比如实现一个两秒的定时器?

15、如何封装一个任务队列?

16、如何在一个正在执行的函数中知道对应线程的id、线程名、线程信息(std::thread::get_id是否可以?)

17、进程间通信方式有哪些?(共享内存、消息队列、管道、本地socket)

18、lambda表达式

19、播放器如果卡死了怎么去定位?

20、windows下的内存泄漏怎么去解决?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值