iOS 音视频开发 - 系统中断音频(Swift语言)

iOS 音视频开发 - 系统中断音频(Swift语言),第1张

注册 AVAudioSession.interruptionNotification 的通知,可以收到播放打断通知。 系统将此通知发布到主线程。

其中userinfo有如下字段:

分began与end,用来表示打断开始与打断结束。

只在打断结束时返回。悄斗败选项用 shouldResume 来指示:另一个音频会话的中断已结束,应用程序可以恢复其音频会话。

该属性只在打断开始时返回。存在于版本iOS 10.3-14.5。

用于确定这次中断是否由于系统挂起App所致。

获取到的是一个NSNumber表示的Bool。销滑为true表示中断是由于系统挂起,false是被另一音频打断。

该属性只在打断开始时返回。存在于版本iOS 14.5以后,用来代替 AVAudioSessionInterruptionWasSuspendedKey 。

default :因为另一个音频会话被激活,音频中断。(例如后台播着音频,此时播放微信语音)

appWasSuspended :由于APP被系统挂起,音频中断

builtInMicMuted :音频因内置麦克风静音而中断(例如iPad智启颤能关闭套【iPad's Smart Folio】合上)

线程的挂起与恢复,不推荐使用Thread..::.Suspend 和Thread..::.Resume方法。你可以通过AutoResetEvent来控制挂起和恢复,用Sleep来暂停线程执行。AutoResetEvent 允许线程通过发信号互相通信。通常,此通信涉及线程需要独占访问的资源。线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号。如果 AutoResetEvent 处于非终止状态,则该线程阻塞,并等待当前控制资源的线程通过调用 Set 发出资源可用的信号。调用 Set 向 AutoResetEvent 发信号以释放等待线程。AutoResetEvent 将保持终止状态,直到一个正在等待的线程被释放,然后自动返回非终止状态。如果没有任何线程在等待,则状态将无限期地保持为终止状态。可以通过将一个布尔值传递给构造函数来控制 AutoResetEvent 的初始闭携状态,如果初始状态为终止状态,则为 true;否则为 false。通俗的来讲只有等myResetEven.Set()成功运行后,myResetEven.WaitOne()才能够获得运行机粗态毁会岩备Set是发信号,WaitOne是等待信号,只有发了信号,等待的才会执行。如果不发的话,WaitOne后面的程序就永远不会执行。class Class1{public static bool ok = falsestatic AutoResetEvent are = new AutoResetEvent(false)public void add() {while(true){if (ok){Console.WriteLine("你好")Thread.Sleep(1000)}else {Console.WriteLine("我等待")are.WaitOne()}}}public static void begin(){ok = trueare.Set()}public static void end(){ok = false}}class Program{public static void Main(String[] args) {Thread t = new Thread(new ThreadStart(new Class1().add))Thread.CurrentThread.Name = "主线程"t.Start()t.Name = "Class1线程"for (int i = 0i <10i++ ){Console.WriteLine(i)Thread.Sleep(1000)}Class1.begin()for (int i = 0i <10i++){Console.WriteLine(i)Thread.Sleep(1000)}Class1.end()t.Abort()Console.WriteLine(t.Name + "状态:" + t.ThreadState)Console.ReadLine()}}

xcode集成开发环境是运行于Mac苹果电脑上用于开发swift应用程序的工具,利用xcode可以很方便、直观的开发OS X和iOS系统所支持的应用程序。下面小编与大家一起分享一下利用xcode开发swift程序的具体方法。

方法/步骤

首先,必须在苹果Mac电脑上搭建xcode开发环境。

打开“xcode”开发工具,点击“File”->“New”->“Project”项来创建一个新的工程。

接着在打开的“创建工拍厅坦程”向导界面中,选择“OS X”系统中的“Application”项,选中“Command Line Tool”项,点击“Next”按钮来创建一个基于OS X系统的命令行应用程序。

接着输入“Project Name”(工程名称)和“Language”(语言),特别的在此选择使用“swift”语言进行创建应用程序,点击“Next”按钮。

然后直接点击“Create”按钮创建应用程序。

在程序开发界面中,点击左侧的“main_swift”项,就可以打开主程序编程窗口。

在此窗口中,只伏肆有一条语句:“println("Hello,World!")”

该语句的功能是在输出窗口中显示“Hello,World!”字样。

点击界面左上角的“运行”按钮,然后就可以在输出窗口中看到输出结果啦。

接下来就可以在此输入程袭桐序代码,开启编程之旅啦。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12267225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存