00:00
同学们,今天我们啊讲这个手机语音啊,那么上一次我们讲了什么呢?啊,第一讲了一个A,就是一些小案例是吧,通过这个ail的小案例啊,我们就可以知道哦,原来我们可以这样和服进行交互。哦,原来这样和胡军交互,以前我们是start service,然后就启动服务的过程中,我们很难去调服务里面的某一个方法。对吧,服务它是一个类吗?服是一个类吗?是一个类,但是这个类我们能六出来吗?其实是能六,但是如果你溜出来以后,就把它当成一个普通类了。对吧,比如说我是一个男人,我在讲台上,我是一个老师,那我发挥我的最大价值。那如果回来我回到社会上,普通的一个大街上,我在走路,那我就是一个普通的人,没有什么特别之处,对吧,同样如果这个服务。
01:08
如果你把六出来,它就是普通类了。明白吧,但是如果你是大service这种方式,它就有服务的这种什么生命周期,就像我们SPA的activity样,它当你的activity这种方式去启动一个activity,这时候呢,Activity是不有相应的回掉相对生命周期啊。但是如果你去录。你就把它当一普通类了,你要去挨过去调崩挨去调查的一个这个这个S他才会被调用,而不是主动被什么回调,明白吧,那服务的话呢,一般我们肯定是,那当我们去启动它的时候,我们目正常情况下是很难。去要付你的某个方法。那么。
02:00
那么的话呢,我们就要求这服务的方法,我们可以通过广播,比如说服务被我们启动过后,在公会里面我们注册一个广播,然后我们的艾特里面一点某个按钮就发给广播,如果收到广播就可以做某多事情嘛,是不是这是一种方式,但这种方式我们是还没有做完,就一点在服务里面手管我是没有做啊种。好,其实用广播也可以让I和定交互,除此之外呢,我们还有另种办法叫AA,它是一个类似,如果不好理解的话,理解接口,通过这个接口。然后呢,它生成一个这个就是和之间交互的一个桥梁,这个桥梁不光我们可以访问服务的方法,也可以服务访问我们的方法,只是说我们没有做服务访问it的方法而已,对不对。
03:09
那我们昨昨天用到的是activity访问服务的方法,那具体怎么做呢?第一步我们把服务定起来了,对不对,把各种方法都写了,然后我们还写了一个AI的文件,这个AI的文件呢,它会默认生成我们一个类,也叫I service,点加吧,它会自动生成啊,好像是生成到我看看啊。嗯,这个地方看到没有,这个类就是什么自动生成的啊,生成的啊,我们右键去打开它原始的地方,这是属于什么类啊。加我了,诶老师明明他就是AI啊。怎么变成这个了,你看明明在这个地方里面它是AI了啊注意啊,它生成一个加类,明白吧,是不是我们这里面的代码,这个服务的代码是什么,代码是什么加是加法代码吗?那不是要在这里面能用的代码是肯定也是什么代码也是加,明白吗?OK,所以的话,我们在这个沙板的时候,嗯,方点的时候就会把这个沙把返回这沙板,其实就是。
04:28
自定义生成的这个累,累不累。三知道吧,一个内部的抽象类,然后这个内部的抽象类里面就有刚才我们的ad文件选的各个方法,比如是大的。在这里面是不是显了些大啊,对不对,是有这方法,然后有了过后这些是大的话,哎,我在这个内部类里面是在去使用谁呀,是拿到谁的引用啊,拿到我们S什么的实力啊实力,然后这个实力拿到过后,是不是就可以直接调服外面的务特里面的方法了,你看我叫十大的。
05:15
是叫服的是吧,好,那这样的话呢,我们就可以掉了,就得到引用了啊,所以也就是说以后我们只要是调我们的这个类,其实掉了这个类的某个方法,本质上它会调服务。啊,回过头去。他会掉服务的,这个是服务吧,服务的。好,但是有个前提就是必须得绑定成功后才能干这的事情,所以这地方有一文包器里面一进来它会有一个绑定,那绑定的过程中我又发现,诶,如果绑定的话,没绑定次是实例化一个服务啊,所以又避免重复启动,我又什么暂时在一次这时候呢,服务就不会创建一次,所以在这个地方呢,如果在5.0以上要显显死,如果在低版本以前的话,可以不要,就这样就可以知道吧,那就后这样的话,他靠的是谁啊,靠的这动作,这动作在哪里定义了,跟他们其他文见好,那么当我们一绑定我们的这个服务的时候,这个时候呢,好,它就会有个回调对吧,这个时候呢,我们就可以打开这个open,你打开是根据根据位置去打开一个音频呐,就开始可以播放对吧,那如果。
06:43
他是从状态栏进来的,我们需要重新打开吗?不需要是直接啊获取数据啊,那要想获取数据发个广播啊,当然你可以直接设这个方法,Set view啊,Set you data这个方法,这个方法是直接设置数据的。
07:03
对不对,也可以直接去调啊,直接调啊也可以啊,在地方里面的话呢,啊,我就直接发个广播,然后再发过广播后,是这里收到了过后,他再去设置数据,再去判断这些啊这就可以啊好,这样的话呢,我们就可以做的一个事情了。然后有了过后呢,在我们这个地方里面啊,在我们这地方里面的话呢,我们就。我们就把这个,诶把它上一次的就搞定了,对吧?好,那播放暂停就比较简单了,那么我们的地方里面去掉播放暂停好来看一下好这里面呢,播放暂停好播放暂停这是我们要判断是否是播放啊,如果播放我就暂停了,好那这个方法是不我们也去也相当于是AAI电这里也是定义了。好在这里面对不对啊,就也定义了对吧,好也定义了,好在我们地方里面的话呢,定义过后,然后最终是也在服务器使用啊对不对,好然后的话呢,也到这地方里面去使用了,对不对?好在地方里面呢,就把它给搞定了,OK,好,那么有了过后呢,我们就啊根据来播放,注意他是否在播放,真正是要看play的这个状态啊,因为真正播放是由谁在播放啊,不累对吧,你看哎,你没发现为什么是只有里面才有播放啊,举个例子啊,假如我问你,你饿了吗?
08:37
那假如我要这位同学回答是相当于不,不符合情况啊,因为我问的是你饿了吗?然后他来回答他不饿。那这样的话是只有他才知道他饿不饿,那也就是说密不是负责播放音视频的,只有他知道他在正府在播放啊,这就是,这就是什么呢?就是封装,也就是说你播放的状态是谁在播放,肯定是他面临某一个状态。
09:07
对不对,就是这么一个道理,对吧,所以你会发现我们之前这个Java基础。如果你学的很好,你的后面他会有一些影响,就是说如果你在上微谷整个课程你就学的特别好,哎,如果你能够融会贯通,对吧,那就很牛了,对不对,就很牛了,就像杨过一样,当时也是也很烂是吧。然后他似不是加了口诀是吧,后来了不呼,后来呼呼呢,哎,就结合他的个口诀,双面合币是吧,对吧,所以的话呢,有些东西,但是当时杨过。在学那个武功的时候,他是不是为了这个乘法,他教他口诀是吧,他是不是也使记扭力记下来,当他理解这个什么意思了。他理解那个口诀的意思嘛,不理解对不对,所以你们在平时学安卓的时候,其实有时候啊,暂时无法理解啊,请记下有朝一日。
10:10
突然明白,就这么简单。知道吧,我觉得一定要不懂的,你不能说不懂啊,我就不敲了。那就是悲剧就会发生啊,你要记下来,像杨过一样是吧?后面在古墓里面终于用上,是不是成为100神雕大侠,是不是成就自己辉煌的一生是吧?好,那这个时候有了过后呢,啊,就是这么一个状态对吧,然后我们还讲了这个显示音乐的名称,这个行名称的话,那是要去服务去获取呀,哎,这个时候获取的话,就用到去服务里面取东西了吧,那什么时候去取呢?特别是时间,如果是名称的话。
11:01
可以很快去取,但是时间的话是播放起来才能取啊,所以这个时候我就怎么办呢?我就等音乐播起来过后,他主动发个广播,诶,我收到这就去,对不对,收到就去。对吧,这样的话是就这种这种的话是就避免一首曲的话没有东西啊,如果一个音乐他没有准备好。你去取他得的这个负一也不会出错,但是负一的话,这不是我们想要嘞,明白吧,OK,所以这样的话嘞,就是当我们的播放器在服里面准备好了,这个时候呢,我就发个广播,对吧,这这我想了一个方法,这个方法的话呢,动态从一个直进去发给广播吧,然后这个广播呢,叫这个名字,然后发出去过后,我这里面是不是就收到啊,好,Ctrl o弹出来搜一下,这时候你看就收到了,因为我们在历的data里面,我们对谁感兴趣了,是这个广播吧,对不对,好。
12:12
对这个广播感兴趣,所以呢,就会传到我们这里来啊,从这里来啊,同学们,OK,就这样子一回事啊,好那有过后好我们又做了音乐的拖动,音乐拖动这个这个是大和视频拖动一样的呀,很简单,一首先设置mark的值是吧,然后再设置我们的这个C8的一个改变状态是不是搞定了就可以了。好,那还有一个就是增加任务栏什么呢?就是我们播一首歌,哇塞是吧,诶好,这是昨天有位同学刚才跳bug的了,这个是我们的,好,然后点一首歌在里面显示啊,这个显示的话,大家想想它用的不是不是很广泛了,比如说你的软件更新了。
13:03
对吧,你你这个软件突然发一个版本,可以增加跟美女聊天的一个功能,诶这个时候是一个重大版本是吧,你要让所有人更新到这个版本,而且你跟美女聊天可以增加收入,是我一定要想办法让这些用户都升级到这个版本啊,因为我可以增加我的收入,这个时候呢,为了很更加的显眼,是我你可以在这个状态里面,哇塞显示这个他就一发哦是吧,增加和美女聊天是吧,当然你可以做点擦边球,就是说哎跟美女裸聊是吧?好,当然你这个裸件肯定不能真正的有裸聊,那就那就犯法了,这是运营的手段,就是吸引他,让他去安装下载对不对,这样的话,如果你是个屌丝,那可能你就下载了啊是吧,但是一看啊是正规的,但是也可能从此以后呢,啊,可能就会啊,有空啊可能就正玩了,对不对,就这就干一个问题知道吧。
14:02
因为这个运营里面,比如说我十个用户,诶只要有两三个用户他常用,我觉得就不错了,对不对,所以的话,如果刚好有能这个软件能够满足你的需求,比如说哎呀也能够聊天啊,也挺开心的,是不是这样子,这是运营那种手段了,好那这个时候有了过后呢,啊这个我们就做了这个通知栏,好昨天我们还做了一个什么呢,就是从音音乐里面再进去的时候七有bug呀。还记得是什么bug吗?这个是没有信息啊,没有信息啊,没有信息,那没有信息的话。就第一次,第一次进去的时候没有,就是没有信息,没有信息的原因是因为我们这艾是重新去创建了,我们需要重新发广播,让我们重新获取信息吧就可以了,还有我们还之间还有一个bug,每重装的咱们点一个都实例化一个给啊。后来我们怎么解决的社会单例对不对,你看我们在这个安卓的时候学基础哦,有一个模式,四种启动模式对吧,然后当时我们学的哎哟还是那这个是在什么情况用啊是吧,后来发现你看在后面的项目就用到了吧。
15:16
所以大家学什么东西的话,诶,你先记住,后面你用到了,你会有种豁然开朗。货来开。但是前提你要先记,记录下来这个状态。对吧,先记下来,然后你有朝一日用到了,你就你用到了。对吧,比如说我们中国人学汉字,然后我们平时学了很多汉字,然后突然有一篇,你读一篇文章发现都用上。对不对。就就这个道理,我写的就用上了,但你不是正好你用上了,其实你真的用上对不对。所以的话,大家学编程,其实道理和我们生活中一样的,大家不明白些,记记我找老师问一问对吧。
16:04
啊,就是这么一回事啊好有的客户,那今天我们要说点啥呢?啊说点这个设计啊,设置这个播放模式,有单曲啊,有一个随有一个单曲循环,有一个顺序循环,有全部循环,还有在在各种模式各种这个循环的情况下,上一上一首下一首又该怎么处理,还有一个一八。因bus呢就可以在任何组件中进行交互数据,你只要注册了它和广播类似,但是呢,它可以取相当于它的功能啊,以及扩展性,可以取代哈德以及广播。知道吧,非常好用啊,而且简单对吧。简单。那为什么安卓这么用的就是这么火,特别是你会发现这个为什么呢?就安卓相对于其他比较简单是吧,比较简单,安卓的这个技术相当于做JAVA1的人来说,学的东西要少,而且简单。
17:11
有同学说,哎,老师,我现在学安全题还挺难的,但是你学校已经更惨,知道吧,惨的更不行啊,所以的话嘞,你们呐,如果连安全都学不会,何以面动江东不老是吧?好,这有点严重了啊,意思就是说咱们学的不难啊,不难,好,那接下来我们还会讲一个歌词显示类,然后呢,让它显示歌词,然后歌词划缓的往上走,再解析歌词,然后接受每句高亮,然后嘞,也就是我们今天能去把音乐这块讲完,那还挺好的,就是我们争取啊讲一天啊,明天再讲一天。最后一天呢?还有就是今天天。大概只能讲到这吧,然后明天把这讲完。后天有最后一天,然后再讲一个新功能啊啊,就是在历史阅录中有视频的,有图片的,再讲一个,然后你再一练就全部很完美的,这八天就吸,应该是学到很多很多东西了啊。
18:15
好,那同学们啊,这今天的话,我们会讲这个歌词的这么一个播放啊,还会讲啊这么一个效果呢,给他看一下。嗯,应该是这个,我看一下是不是。哎,不是。啊,那就是这个。好,然后我们点首歌,你看这个缓缓的往上走是吧,其实还挺酷的,那其实如果你是联网的吧,你是可以在背景设置一个这个歌手的图像的,然后这种图像呢,是搞大一点,不能太明显,太明显或说是这个文字就不清晰了,这样的话你感觉特别美是吧?如果你特别喜欢某个歌手的这个歌曲,然后你再看着他,你会感觉真幸福是吧,对吧,就像啊,我觉得。
19:09
呃,大家看过我是歌手吗?我是歌手的话,当。当我看那个那个那个邓紫棋吧,好像是好,他唱那个泡沫的时候,确实特别好听,以前我听过还感觉得一般,现在越听觉得就越好听,就这两天觉得好听,知道吧,不咋听啊,然后还有还听一首歌,呃,叫做我想和你在一起一首歌就是那个。有能在就是那个港囧啊的一首歌也比较好听啊,就是就就感觉听后特别就是感觉,呃,就是心里面就特别开心那种感觉啊啊就是人生感觉有有希望那种好,然后有的课外同学们在我们这地方里面的话呢,啊这就是我们大概一天的这个内容,好把视频的保存。
我来说两句