00:00
我们就要去创建服务和创业对应的idl。好,那么我们接下来把这个过程呢,写一写啊,就是创建我们的这个啊VD。啊的一个。就是这一个service吧,就音乐的就叫看一下我我们叫什么呢?叫music service的一个什么,嗯,Service啊就叫啥,或者叫啊叫service。没点意思啊啊没。DA好这个意思,然后有了过后呢,好,然后把它创建过后,然后顺便创建I加文件,和我们的I没就跟它名字一样。
01:08
就是它前面加上一个什么I。啊,这样子点AID这个呢,是点什么加va对吧。好,那么这个是有了过后,同学们我们要做什么事情呢?第一步就是要创建这么一个服务里面呢,显我们大量的这个显我们常用的方法,比如哪些方法呢。Start house播放暂停呢,好,为什么呢?因为因为以后啊,我们都需要在ID里去选知道吧,这样的话我们才可以去跟他沟通啊,所以的话我还不如一次啊选多一点啊选多一点第二步,然后然后呢,就是啊创建。
02:12
我们的这个文件啊,第三步,然后呢,在服务里面啊,这个邦的。啊,在里面。重写重写这个方法,然后穿着服务过后呢,好,还不要忘了在功能性那边去注册吧,功能清单文件注册啊这样的事情好创建过后在这里面出现办的,然后接下来。第四步,第四步干嘛嘞,接下来就要去绑定方式启动什么服务,第五步然后呢。
03:03
服务过后呢,就开始做一个非常简单的东西,就是做一个播放我们的音乐啊,放一面好,那接下来有后基本上就是按照这个步骤来好,第一步同学们我们创建一这么一个服务,好大家看好啊,然后把里面的方法可以写一写,对吧?好同学们来到这里把其他不相关的全部干掉,然后去穿用服啊,大家好啊,是从头开始写了,就是就就用刚才那个小案例,你不知道都没关系,因为我们现在再做一遍,好来到这里面我们在哪里写呢?这里面创建一个目录,上一个包,我们叫什么。对吧,然后右键创建我们的一个类,这叫media service。然后有了过后,他继承什么service对吧?好,然后至少呢,要把我们的这个绑定给实现一下,然后库那个方法也得实现一下,对不对。
04:11
好,那服务里面有了,过后售卖要在功能清单里面注册呀,好来到功能清单门面注册。好,这是什么service对吧,好。这个service,所以过后呢,这个地方里面注意了,好我要还写一个意图,好意图的话嘞,好这里面有一个什么function name,好这action是刚才我们在这个小案例里面说要要写个action了,这没问题吧,在共共清单文件里面是有个action的,Action可以什么自定义吧,我就看点at.mobile play,然后我们就叫什么呢。
05:01
叫做open open对吧。好把这个斜杠写上,然后呢,把这个改为什么大写对吧?好,小写大写都可以对吧,是不是就有这个了,好以后我们是可以通过这个动作去把它写起来,好那以后告诉同学们好服务里面这是我们相当于音乐播放的一个什么服务吧,好那同学们,那音乐播放大家想想音乐播放有上一个下一个播放和暂停和上好多啊,是不是还打开等等是一系列我们全部选在这,那我们就全部选出来,然后呢,可以先不实现知道吧。为什么呢?因为AI调度也需要这样的方法,所以我写完过后,AI调的话,写的话要就容易一点,因为I调走的话去写代码不好写,知道吧,好,然后我们就把大家想到了,你看啊,比如说啊,这个provide open open,这个all根据位置对吧,然后这地方里面呢,去打开对吧,这就是根据位置打开视频音频,根据位置,诶根据位置啊,这个打开我们的音音乐对吧?好,那有打开,打过后是我们如果打开好了,就开始要播放了吧,好right,然后呢,然后是start,是start就是播放啊。
06:54
好,这是播放音乐,好,那有播放就应该有什么暂停吧。
07:08
好,就是暂停。暂停音乐吧,对吧,好。有展厅的还有什么呢?对,上一个下一个啊,同学们,这个很厉害啊是吧,一下就知道了,那可是好next是下一个吧,好,下一个,那有下一个就有一个什么好,这是下一个下一首呗,对吧?好,接下来把这个们复制好,这个是上一首吧,好,这上一首叫P什么re吧,好,那有上一个下一个,接下来还有什么?循环播放是吧,那就是播放模式啊,In类型get我们的model啊,就是就是play play model是吧,好模式model呢,找一个零好就是得到播放模式。
08:28
好,那为什么有播放模式啊,是我播放歌曲确实有啊,大家看一下。播首歌。你看是不同的模式啊,是不是啊,不同模式好,那么既然有get是应该有啊好fight,然后set play啊mode直行play的好好那这个是设置播放模式好,那有了过后大家还想到的有什么方法呀。
09:14
大家想想就上一个下一个播放暂停有了得到当前进度和总总时长才有啊,这个事件是要显示在it中啊,所以你要这个方法跟。要提供给调用啊,要得到当前进度是不是啊。Get的啊,说问题吧,默认返回一个返回个零。21个负一图形好,就是得到当前播放的时候进度对不对。好,那同学们有了过后在地方里面的话呢,还有得到当前的种什么等,13GET他们的角类形。
10:10
好,那么这时候呢,Return,诶得到当前的总时长,当前的总时长对吧?好,那有了过后,但当前总时长过后,大家想想,大家可以看这播放器,你想到呢。名称。左整数一要得到啊,好,OK,返回时间就行,Get他们的内蒙吧,好,然后一先是一个,这是一个走算好这是得到我们的库学名称吧,他歌曲名词帅得演唱者呀,好,那这个时候来get我们的。
11:02
啊,TST是这样的,好艺术家,好得到我们演唱者啊,这个是这个单子,是艺艺术家的意思吧,啊艺术家啊,艺术家这个单词啊。好,那还有大家想一想,我们在地方里面有了这个,这个有了,然后歌词我们再到时候再说啊这块。这有了这个有了,这个有这个都有了这啊这个不需要那么拖动,是不是要需要啊这个啊好。好,Will seek to对吧,不行。好,这时候呢,我们就是说拖动。
12:01
这个拖动好,那么这些方法有了对不对,首先是把这个方法呢。服务相当于选出来了,好,这是我们的第一步。里面常用的方法是选出来了吧,好OK。笔记写下。现场给你们做笔记,笔记了,你们以后就不用做笔记了,直接敲代码,知道吧,这才是王道。有的同学把笔记放为重点。笔记做的挺好是吧,但我没敲,最后导致很惨。好,接下来第二步创建A文件,创建这个了吧,好一会我会把这些方法都拷贝过去知道吧,所以为什么抄这么多方法,就是因为就为这根铺垫的是吧,好,然后有那个后是吧。咱们生活20年就是为了娶个老婆,对不对,这不是前面都是为娶老婆做铺垫是吧?
13:01
好,同学们,过后我们创建一个AI的文件。看到没有,然后名字叫什么呢?这个把这A调的去掉,去掉这。好,然后。诶定义分成呢就可以了,好这个时候大家注意它会创自动帮我们创建出来。他会帮我们创建一个什么新的目录,知道吧,目录好。那有了过后注意这个文件的话,在地方里面是相当于一个接口啊,In the face,然后我们把刚才的。拷贝过来这部分最常用的方法,把它全部拿过来。拿过来,然后这个的话呢,可以留着啊,可以也可以删掉,我们留着吧,好,那这个有的同学们注意了。
14:01
我们在这个地方里面,这个方法不要,这个欧库里方法不要好,然后注意这个部分删掉,把方法体把那个什么去掉,这个讲过吧,那这个也一样,把去掉能去能留着吗。不能留不能留啊,把这个方法去掉,你看,那你知道同学们我为什么在方法里面符里面写这么多空方法了吧,就是为了拷贝,要不然我是不是写两遍了,懂意思吧。我就为了省一点时间,对不对,所以的话呢,我们就把它给拷贝了,对吧?好,然后把这个们呢干掉是吧,干掉好这个的话呢,干掉好这个这样子这么地吧,好干掉好干掉,然后呢,把这个干掉,好把这个干掉,把这个干掉。
15:03
把这个干掉,还不能用,不能留啊,这外头好干掉干掉。删掉。干掉干掉。掉好这个时候呢,咱们这个I的文件和这两个文件呢,都写好了,I的文件就长这个样子是吧,把代码格式化一下,好就长这个样子的啊。怎么就格式不了啊?啊,格式不了它啊,那反正这种应该没事啊,这个这个格式丑一点对吧。好。我们这样。缩进诶。嗯。是的,对,好K了吧,跟他一样,好,再说点OK 3K了吧,好看了好,那这就是我们这个文件,好把它保存一下,好大家休息好吧,把这个A的文件是不是搞定了,好那也就说刚才我们做了两个事情,第一个是把服务给创建出来,服务我们在里面写这么多方法,有的同学感觉,哎,老师你干嘛学这么多方法是吧,其实我的目的就是偷懒,为啥呢?
16:26
因为我在这个地方里面是不是也要用到这样的方法,那我问大家,以后这样的方法我可以不叫大臣吗?可以知道吧,假如说以,也就是说以后我要到府里面他的方法,那我掉的时候,我可以随便选一个方法去调他呀。但是显得一样的话。就就简单嘛,是不是是不是懂意思吧,其实你假如说你要调下一个,你最终以后是调服务的方法吧,但是我也叫下一个这样的话去教服务是不是要非常简单。
17:02
但你可以叫什么就下一个什么,但是你一定要别人一看也知道是下一个是不是最好是一样是不是就更好啊,好,那A写好过后接下来。在这个过程中注意了,我就要在服务里面啊,去重新写安邦的,安邦的这里面服务里面大家看一下。这有了吧,好,那这个时候我们就要写一个叫I,现在有吗。是没有啊,那么怎么办啊?同学们,如果没有的话,你需要重新去运行一下啊,或者说build一下也可以啊。注意了,我现在想干嘛,是不是这个ail的文件,它要生成一个类啊,没一点你看是没有啊,没有吧,那我现在去把它运行一下,或者是build一下,这也可以啊,点这个也可以,好,我现在运行。
18:08
这时候呢,在运的过程中,它可以把我们这个革命的生成啊,生成一个类啊,好,我们给大家看一下,现在有了没有I。这个media是有了,是不是media啊,刚才是没有的,同学们好,这时候呢就有了,好,我们呢把它给定义出来。好。这个我们就叫这个,它这边有个sub没sub,然后六一个I这个没点。啊就他好,那这些方法你看是都有啦,Open啊,Start啊,Next啊是都有啦,好。然后。啊,你把它改为私有不改不改都行啊,然后帮的里面返回什么。
19:03
返回这个,OK,这个写一个什么很好,好那同学们。那么我们之前说了。在这个地方里面。服务要和进行交互,通过谁呀?I那ad它其实就是要变成是服务的一个什么,服务的一个代理类,好,那既然是代理,他这里面就要应该是调服务的方法吧,好注意我在这门链去定义服务累死类死指针。类似指的是这个类的实例啊,如果是这样呢。这是他的实力啊,好,然后这里面我就要去调他的open。那也就是说以后我们调这方法的时候,本质上是调浮的这个open吧,所以说跟服务镜交互起来了,好接下来这地方是大吧都写上都没问题吧点,然后接下来再调查的什么S再调他的,什么商业部再调他的。
20:24
在道上的播放模式。好再加他的算这么行吧,好再得到他的这这个你看这样的话,就这样子类型,这个的话呢,跟他们的那个这样的话呢,跟我们的艺术家。好这个的话呢,去对吧,这个好这就可以了,好那同学们这个时候有了过后嘞。
21:02
有了过后呢,在我们这一方里面OK。是不是这样就可以了,好,可以过后注意了。我们接下来就是要绑定的方式启动服务了,好来到哪里啊?啊,来到我们的艾这里对不对,好这个时候我去来,好,那启动之前我们是要把这些布局给实例化一下,这里面过ID实例化一下,怎么实例化I,过去实例化I实是特别麻烦的,还要乘级合适,还记得我们这离线工具吗?好又让他闪亮登场的时候来了是吧?好,他表现的机会来了,好这个时候我们得到这个代码了吧。好,把这个代码拷贝过来。是很好啊,像这个代码应该带会显吧,会显对吧,所以我们就没必要再去这个写了。
22:01
好,那么有了过后,那我们这个类实现我们的这个什么O点击时间好就这一个这个好是这个吧,好这时候呢,就不要说了,好这个方法要你用一用吧,好来到红这脂方去调一调。对吧,好,其实我们都可以把这个能剪切放到这里,是不是能放到后边吗?不能。好,然后这个我们其实都可以放在它里边对吧,好这样的话呢,就看到的比较简洁了嘛。好啊,我是不是就有这个了,好,接下来有个后同学们,我们在这个地方里面先要去得到。是先要得到数据,然后再启动服务啊,Get date啊,或者直接绑定服务也可以先我们这样,我先get date好date好,那有了过后同学们在我们地方里面的话呢,我们就要去get data,这个方法有了没有没有对吧?好,那但这个方法我们我们怎么得到数据所由对方怎么传,我们就怎么得到啊,所以在我们这个地方里面,我们要看一下传的那个地方所什呢?Audio这里的,那我们看看它点击一个it的时候,它怎么传的。
23:34
那是我们传的是列表啊。列表,但是注意了。我们的列表是在服务里面的,其实服务一开启过后呢,我们就让他去加载,就没必要存列表,只要传一个什么位置过去就可以了。知道吧,从位置过去,所以不存列表了啊,传递位置,那这些列表在哪里呢?我在服里面自己去加载啊,可以加载好,那这个时候我就从一个位置过去,那从位置过去我们是就是要播放哪个视频呢?可以了,播放我们列表中的某个音频啊,音频好,那么接下来这个位置一定。
24:19
一张拷贝,有的同学的话呢,这个地方选对了,但是得到的时候选错了,是最终词汇得不到好,那所以的话呢,我们要去得到它好,它they去然后去get get我们的intent,然后get我们的啊的这个吧,好然后默认是第一个零对吧,然后这个把它写成类的什么变量对吧。好。好,应该应该写成什么,那前面呢,外边。第一个这个是吧,好播放位置,音频播放的列表位置。
25:09
好。那有过后同学们在对方里面有启动过后,接下来绑定服务了吧,And的,但是有这么一个方法。啊,Service。那我们叫什么呢?And start叫这个这个方法,这个方法我们是重新创建啊,因为系统有一个叫帮service,好,那这个时候我就定一个intent intent,然后一个inent,好,那有后这是上下文吧,激活的是service,注意以前呢,我不需要指定某个服务,就用动作就可以了。啊,但是的话呢,这个在5.0过后呢,他就考虑安全问题就不起作用了啊好,那这个时候我们的服务叫什么名字啊me这点什么对吧,然后有了过后,好这个时候启动的话,还有印象吧,叫有一个安的还有印象吗?就是我们之前那个小案例啊,怎么启动服务量。
26:21
是这里面拼一个哦,是般的不需要,就是一个动作直接设就可以了啊,这般的不需要,然后这里面设置一个什么,算上我们的action啊,这个动作在哪里啊,在功能清单文面怎么定义,我就用什么动作啊,好好把它给拿过来。这么题吧,然后接下来intent,然后就set的好,注意在这个地方有过后呢就有了吧,这下就好帮的,所以是好第二个参数啊,第一个参数是上眼纹,第二个参数是什么。
27:08
是一个service connect,这个用过吧,用过好这个的话呢,我们一会用,然后还有最后一个参数是什么?创建是绑定,就是绑定自动的一个创建呢,好中间这个参数注意了,还是很重要的啊,这个是一个链接吧,我们就叫叫这个名字,然后呢把它给创建出来。好创建好创建成一个我们的。那层变变量这个是一个叫service connect吧,它是一个什么接口知道吧,接口是有两个方法,就当我们跟服务链接成功后,这时候会回答这个方法吧,当我们和服务是类似这个链接。
28:13
解成功的时候回调这个什么方法好当爱和service。链接成功的时候,回到这个方法好,那当我们断开的时候知道吧,当我们的这个啊艾和无断开的时候,我们的回调这方法好,那同学们在我们地方里面的话呢,好,如果一旦练接成功,所不是我们要返回一个一个代理一个代理内啊。好,那这个时候怎么做呢?
29:03
就是回那个代类,那么代类叫什么名字啊,II这个吧,我们就叫把它叫做service,好,那这个时候注意了,它在这里面就可以。这个就相当于这个类,相当于是谁呀,服务什么代理什么,那其实他就是。没一点。Media。Ada service得什么代理类吧,他多了一个什么I对不对的类,然后过后它,然后就从我们的这里叫I。呃,那一点这里面有一个叫sub,里面有一个AB,把service把它存进去,是通过这个门,它转换成我们的一个这个类啊,其实这一边传过来的,其实就是我们的一个什么负的一个单类,好等到过后,那如果都断掉了,我们就把它置为什么那对吧。
30:15
OK,好,那么绑定成功后注意了,在绑定的时候大家注意了,不光要绑定,还要什么?它的service为什么呢?就是防止它啊,每调一次过后呢,就是如果当我们做过四年啊,就是要这两个都加上,如果不加上的会导致问题,就每启动一次后,它会重新播放一个音乐啊,就是避免,它的作用是避免,避免我们的service被重新创建。好,它有个好处就是避免损,为什么?因为因为以前我们试探设备是启动一次过后说它也不会不会再启动了,刚好是他的特点,但是如果绑定你绑定一次它,他会重新绑定一次,会重新实地化一个服务吧,他有这个问题,所以我们两个结合起来就避免这个问题了,知道吧。
31:15
啊,这是一个巧妙的用法了,好在接下来,接下来就你就应该该干嘛行吧,如果销毁的时候对不对。嗯,在服务里面join,然后这个时候就应该有解绑服务吧,嗯,这位是什么好找连接是前提是这个部位空啊好,然后不等于空。就这样代码写也是废啦。就这一行代码可以吧,啊不用括号OK,那这个后一绑定过后好一绑定过后接下来好,他如果成功了,他就回到哪里啊回到这里来,那么得到运营了吧,接下来就开得到运营过后是相当于就可以操作服务了,就可以操作服务了,那操作服务了过后大家想想到这地方里面我们就要open去打开这个辅导吧。
32:21
这个时候这个方法刚才我们说的是什么意思啊,根据位置打开音乐啊,位置刚才我们有了吗?是有了好那注意只要是通过这个服务带类去调我们服务的方法,他都会报过错,要把它什么TRY住out修类去去看去他报一个什么远程的异常错误对吧?好那一掉过后,他这个时候他会掉哪里啊,掉到服务里面的,服务里面的哪里来服务好我们找找服务在这里对吧,它会调到这里的方法。
33:01
这个方法被调用过,是不是就能调价好,这个时候我们就要去根据列表位置去打开了吧,那当前我们这个地方有列表吗?有音音音乐列表吗?没有,那么就在那地方里面去读取出来吧。啊,先读取服务器创建,我先读取是不是,那么读取的话,这个代码应该和音乐这个地方是一样的吧,所以我们来到这里把它这个代码拷贝过来。是一样的,如果用一样的代码读取出的列表是一样的,好,那有个后在我们的图这里面。把这个呢拿过来好,那个过后这个还需要休眠吗?不需要了,我们是越快越好啊,好把它给创建出来。好,创建这里。这里这是我们的一个什么音频列表对吧,音频列表对吧,好你看为什么我们叫呢。
34:07
是因为media点是代表音乐和视频啊,所以你看我起名字,我就为后来为我们现在做好方便了,对吧,好这个上下歌还需要吗。本身服务它就是一个什么上下文吧,它是没有页面的一个上下文,对不对,就他和哎,他其实我我问大家同学们服务他在做某样事情的时候。如果我们没有用主线程,然后我们在on click的时候,你们觉得在主线还是主线程呢?对,注意啊,服务也是在主线程执行,那么如果以后大家用在服务做下载的话,那这个下载任务应该在哪里做啊,对,明白了吧,服务它是在主线运行,是不是你要做后台下载,那你要开启新的什么线程知道吧。而且以后大家只要是做下载,肯定用到的是服务,好有过后这个地方里面呢,就必须要发消息了啊好,那这个时候我们就可以用列表了,这个这个这个要调一调吧,在那里调啊是只要服务一创业的时候就第一次16化,以后就再也不用了,好那有个后我们又回到这里,又回到open那里。
35:23
记住了吗?接下来我就要去做这个事情,首先外键是从一个位置进来啊,好,我的类似类型,这个时把它定出来吧,好当前的播放列表,好当前的播放位置,播放当前列表的这个播放位置,注意是列表的位置对不对,不是某一个视频的位置吧。好有了过后,然后我们这个时候呢。需要去取啊,它应该是不等于多少,那然后它的这个,然后size应该是大于什么零对吧?好,那么也就是说如果是S的话,那我就说数据还有什么没有加载好吧,数据还没有加载什么好对不对?好,那这时候我们就可以做一个透视对吧。
36:30
好。然后呢,这地方就是数据还没有加载好呢,对吧,好然有过后有注意了,在地方里面我们再去取,就是根据这个位置去取某条数据吧,好然后没一点点it,然后这时候items。是取位置啊,这什么这个好,这样的话呢,是有了吧,对吧,那么这个时有了过后以后我们根据艾特你面去得到它的名称和演唱者吧,这是我要把它写成什么类的,是面量吧,好,这个是这它其实代表的是一个音乐的信息吧,一个第一首音乐吧,音乐是叫首呢,还是想要叫一个呀,对不对啊,一首音乐的信息啊好知道这个意思就行了,是这里面有名称,时长大小这些基本的信息啊好。
37:46
然后有过后再来到open那里。好,那么所以就这个有了,那么这哥们好有过后好,那么这个时候呢,肯定一般的话,这种情况如果的话是肯定会有啊好,还有这种情况,这个是不是有可能会越界。
38:09
越界有可能吗?其实有可能啊,但是啊,就说小心石头万能传对吧?啊其实你不会呢,也可以,一般不会说实话对不对,因为只有传过来的嘛,对对一点的,不可能超出吧,对好,那有了过后,接下来在地方里面注意了,这个是这个信息就有了好注意了,在地方里面我觉是这样子。嗯,如就是说如果在media play这mediapla有了吗?没有果它不等于呢,好,我就要先把它给释放好,我们先把这个创建出来。A media play。
39:03
对吗?对,是这样的,好,然后把它给串建出来算神。那前面这个是没回吧,不是吧类是这个才是好,这个就是我们的什么播放器吧,啊播放器这个播可以播放音乐,播放视频吧,那我问大家。如果以后我播放一个视频,让音乐去播,可以播吗?可以播,只是有声音,没有画面嘛,就像我们播放音,就像我们用视频播放器播放音乐一样,是只有声音,也没有歌词啊,同样我们播放一个视频,然后也可以用于播放器播,知道吧,就是有声音是吧?只能开只只能听对吧?思密达思密达是吧?啊思密达是母是啥意思我都不知道啊,这是播放器啊,就用它来播放音乐和视频对吧?好,如果他不为空。
40:11
在这里我要做一个事情,就是释放啊释放,然后呢,也结束了。是这样的,就是两个方法,为什么呢?因为我们每打开一个的时候,是先把上一个事先关闭啊,其实这样的功能就相当于把什么。上一次或者说正在正在播放的给什么给释放掉或者停掉呗,释放不就停掉啊,因为我们一会就播这个之后我不不想听,我再点,另外一个是先把之前给停掉啊,如果你播这首歌的时候,同时两首歌在唱,那你那你到底听哪首啊,如果同时播十首你会晕掉啊。
41:04
啊,大家有没有同时听十首歌,同时播段感觉会特别烦躁是吧?所以的话先要把之前的给什么停掉对吧?好然后有后,如果你停掉过后,这个哥们是直接把它注意浪了浪好那是不让就释放了,释放过后,哎太好了,接下来就什么重新什么创建对吧?新的那重上过后,它这里面就有一些监听设在我们的on准备好的监听吧,这准备好的监听在咱们曾经用过吗?太熟悉不过了是吧,咱们曾经很潇洒过是吧,好是吧,好,很幸福过是吧?好,然后有个后,把这个方法写一下。那如果一张准备好了,接下来就什么是大的就开始播放了,调这个方法好,那么接下来。
42:06
六六。好,那么准备好了,这是设置准备好的监听吧,然后接下来再设置什么,对吧,必须的吧,好你错了,过后你说应该。播放下一个,当然我们出过后,其音乐播放器也是可以把谜团集成过来啊。也可以集成过来,但是的话呢,我们现在不这么做了,我们就说错了,就是播下一个啊,其实你做万能播放器的话,音乐播放器也可以打到一个万能的,对吧,这是我们主打视频是一面为护啊,然后接下来。然后打包吧,好找谁呀。最后一个吧,好,然后实验方法实验一下,然后把它给什么溜一下,那如果出错了过后同学们你们觉得该干嘛。
43:11
其实应该是从用万能播器播吧,对不对,但是我们现在的话呢,输出化过后就直接什么播下一个,这不对吧。好,那不光如此,其实播放完过后延续下一个好一会的话呢,我们去做这个事情也要设置个监听。好,一点点的敲好带上,好打包,有个后知了吧,起来把那个什么一下对吧,好,那有个后,从对方里面有了过后呢,好,这就是播放膜的一个监听。
44:01
啊,这几个监听都知道吧,设置准备好的监听啥意思呢?就是我们得那个地址过后啊,扔给底层解码,诶,他读取这个视频的信息了。这个时候诶你可以开始播放了,是大家回调啊回调空我G是大的就开始播放了,好同样如果是底层,诶发现这个视频格式不支持是吧,他说好这是日本天我不支持是吧,好就说在就出一个出错是吧,好那如果是帮红了,好你播下一个吧,是吧,这时嘞啊他就会播文会也不回调,那你回调你到底要播下个还是退出,是由由用户去实现了,对不对,就非常方便,好那有这三个过后,接下来media play就设置地址了吧,设置我们等。什么?设置我们的V流,设置我们的date,应该对这好,这里面你看是直接最原始的就是这个方法啊,好太爽了,就用它,然后我们的地址在哪里啊,是从这个艾特里面去什么获取它的什么get成什么data对吧?好然后设置过后,接下来这里面报错。
45:21
好,报错怎么做呢?我们把这个来捕获一下,选中它out shift多少啊Z对吧,先开始。然后就注意了,就这可以了吗?肯定不可以,还有什么准备。准备现在有两个方法,一个是同步一异步,你们用哪个异步知道吧,这个方法有个好处,就是本地,本地资源和网络资源都行,但是这个哥们呢,就是只能是什么本地识别,但是如果你网络特别的快。
46:06
你也可以用它,假如说你们加榜特别快,为啥瞬间就架的起来了,在五秒内肯定能架的起来,你能保证打保票是吧?生子状写下这个时候,那么用它的没问题那道么?但是本地肯定没问题,因为网络是可能说万一要路由是吧,因为线被老鼠咬咬了,网是连不上了,这时候肯定就超出五秒,那就肯定会N异常了,知道吧,因为超过五秒阻塞出线程。就会就会出现什么AR上。A跟异常就是程序无响应,异常就弹出对话框,一点就退出软件了,知道吧,特别丑。好,那这个时候有了过后用它吧,好,当我们一准备好了,这个时候调start,那start我们做了什么事情呢?啥没做啊,至少拿到这个me play干什么,播起来就可以了,那么有播起来就应该什么闪停吧,好,这个还是不是好,那么我们来试一试。
47:13
同学们,我们先来看一看啊,当我从这个地方里面一点。从这个audio这里面一点的时候,它会把我们的这个audio play这个启动起来吧,这启动期过后,接下来的地方里面呢,它就会绑定的方式,绑定方式把服务起来,注意这个服务以前是可以这么省略的,在5.0,包括你现在在低版本运行也没问题。为什么呢?虽然我现在指定某个服务了吗?但是我会根据这个动作找到谁,找到他,但是非常遗憾的是在5.0过后来不能这么做了,否则这样会崩溃,那么就得指定他。
48:03
知道吧,先它,然后有了过后,好就把这个服务启动起来,如果服务器系统启动起来是我以绑定方式启动了,然后这个时候它会回调,回调过后诶我们就得到服务的一个引用,这个是不是一个就是那个接口文件了,好这里面是接文件,你I I made service是不是就它,然后这个呢,它会生成我们的一些。身体自动会生成一个类。诶,它会自,诶我我来这里好,它会自动生成一个什么Java类,大家看一下这这个是什么呢。这个是自动生成的啊,This file is out,自动,这是构建吧,啊,你看我英语这么烂,我也知道,因为看多了嘛啊this fail文件自动outwa out又汽车的意思啊,啊又是自动的意思,然后嘞,Don't not modify,修改不要修改。
49:02
啊,自动构建的,那也就是说这个文件是根据谁构建的。根据I对吧,好,根据这个根本构建的,看到没有好,是根据这构构建的,看到没有好,然后它显示这个。好,这里面注释,它虽然自动生成,它也会有注释,看到没有音乐暂停掉这个方法它会抛一个什么异常,所以为什么我们一法用的话,会在我们用next啊,用这个方法它都会抛异常,就因为在这里面自动生成时抛出来的,知道吧,好明白吧,好有了过后,接下来我们就去调查一调过后,他开始就调这个,这个有过后是不是在我们这个文件里面呢,它其实本质上。它会掉我们的服务。的这个方法,这个方法,这个方法再调这个方法,所以一第二,然后如果一旦自己释放,如果不会空就释放,释放过后,然后接下来创建,创建过后,然后就监听。
50:03
如果央接听成功后,接下来就开始播放,对不对?好,我们去运行起来,好运起来,看我们的是否可以播放呢?感觉这个音乐播起来是还是蛮复杂的呀。啊,但是你我觉得很简单,但是对你们可能有点难。没关系,你们敲一下就可以了,对吧,好运起来。这之前运营的,诶。啊,就他是吧。知道吗?好,我再问一下。避免这个啊,看看啊点他现在我要点首歌啦。我点第几首呢,第三首。唱起来了是不是,现在你觉得我们点不好,哪天管用吗?好,假如你一不小心你这样,哎哟,我的天呢,一再播歌是不是,假如你想停掉怎么办,停掉吗?那只能把声音关小了,好,那当然如果你是程序员的话,也有办法来到这管理,管理过后呢,这能运行好,这里面是是有个服务啊停掉停了不好使,看到没有你服务停掉也不行,这个是另外一个,根本就不是,你看也不行啊,是不是还在唱歌是不是怎么办?想你明骚来这里,这才是很强大,对吧。
51:47
是把你所有的干死是吧,不管是服务还是啥的,把全部停掉是不是啊,很牛吧,这是停掉了,但是咱们是程序员很专业,咱们是专业户,但是普通人是吧,他哪知道啊对不对,是是不是,所以的话,这个我们要提供一个按钮上暂停吧。
52:09
好,那暂停的话啊,一会在做啊,在刚才我们是相当于就把它给拨起来了,对不对,创建服务,然后呢,这就是创建服务,然后对应来的文件就搞定了,这简单吧,好简单对吧,保证。
我来说两句