00:00
好的,我们继续啊,那上一节课呢,我们是通过这个pop萨呢,进行了两个页面的通信啊,那我们已经成功的拿到了这个音乐的ID。哎,那这时候大家看我呢,在刘德华的这一首练习的。哎,下面呢,我去点这个下一首,哎,这个185919ID的这个音乐,那这个时候呢,我们在APP data中呢,我们看一下啊。刘德华这一首呢,是下标为三的对吧,那么他的下一首呢,是这个ID为185919的,没有问题啊,我们这计算也是对的。那么用户点击了下一首以后呢,假设他再点下一首。那么是不是应该是这个185919歌曲的下一首啊,应该是在这个情书,也是张学友的这一本。啊,这一首歌。对吧,可是现在啊,那我们看我们的啊,那现在呢,我不管叠几次呢,它都是185919。哎,那这是为什么呢?首先我们要知道啊,那这个音乐的ID呢,是哪个页面算的呢。
01:06
嗯,是我们的推荐歌曲的页面,在这里通过下标先呢找到对象,然后呢再去拿里面的ID。那么现在的音乐ID没变,那说明啥?说明下标没变,那这点呢,应该是能懂,因为数组呢,它始终在这呢,对吧,那你音乐ID没变,一定是下标没变。啊,那这是为啥呢?来过来我们看一眼啊,在APP data中我们看一下,你不管点多少次这个下标啊,你看我这都打印了12次了,打卡下标每次始终没有变过。哎,那这是因为我们帮人家算完了这个最新的下标以后呢,我们并没有将新的下标呢,哎,去更新到我们的data中,所以呢,下标呢,一直用的是一个固定的值啊,所以呢,这里啊,我们别忘了要去哎更新。哎,我们这个对应的下标那就是类点,哎,Set啊data在这里啊,我们把这个下标给下更新一下好的,那这样的话呢,我们再来看一下啊过来。
02:15
嗯,来,那现在呢,我们还是来到练习这里啊。点击来来到练习。好的,那这个时候呢,我们把控制台清一下啊走,我点下一首。185919没有问题,那么我再点下一首的话,那肯定不应该跟他一样了,应该是张学友的那个情书那首歌对吧,那走。按188674啊,我们再看一眼,对还是不对。188674啊,没有问题,那也就是说我再点上一首,它应该都不一样,同样的道理,我点上一首的话,每次也都不一样啊,只不过是上一场的又倒着回去了而已。好的,那这样的话呢,我们这个音乐的ID呢,在detail这呢,已经可以动态的拿到了。
03:02
那么能够拿到这个音乐的ID,那么接下来我们要干嘛呢?还是获取这个啊音乐的对吧啊详情信息。那么获取音乐的详情信息呢?来,往上看。在哪呢?在我们这个分装好的功能函数,那get in for,这它是不是可以帮我们去做这个事情啊,那这个时候呢,我们只需要调这个方法就可以了,哎,只不过是我们需要在里面传一个音乐ID。好的,那这个时候呢,来,那在这里啊,它一调用,然后呢,我们去把我们最新的音乐ID往进一丢。哎,是不是就好了啊,没有问题啊,好的,那么现在啊,来过来,那这个方法我们调用了,我们看一眼。来练习啊,我们点击进来。来,我们点下一首。好,这个时候大家看啊,这个音乐的信息是不是自动化了呀,那么再往下走,张学友的情书啊,没有问题,来上一首上一首来是不是也是好的呀,啊,那也就是说我们这个音乐的信息呢,可以动态的显示了。
04:11
那么除了这个以外呢,大家再想一下啊,我们平时用别人的这个音乐播放的APP呢,当我们点击下一首或者上一首的时候,他除了要。动态的显示歌曲的信息以外呢,是不是还会自动的播放这个最新的歌曲呀?哎,要自动的去播放。好的,那么来到我们当前的项目啊,如何去自动播放我们当前的音乐呢?这是关键对吧,那这个时候我们再想一下啊,咱们之前呢,分装过一个控制音乐或者暂停的啊,音乐播放或者暂停的功能函数。那这个功能函数呢,是需要我们传入什么呀。是否播放?对吧,然后呢,传入最新的音乐ID,那么它就可以帮我们去播放啊,那这个时候呢,我们很明确,我们是不是就要播放呀,所以。
05:04
我们去调用一下这个对应的回调啊,这个功能函数,那前面肯定要播放,所以我们传一个处啊,那么第二个参数呢,我们就可以传一下这个音乐的ID。对吧,那这样的话呢,它就会自动的帮我们去播放的,来我们看一眼。过了还是啊,刘德华这个练习啊,进来。把控制台清掉啊,我们点下一首走。好,那那这个时候大家看啊,音乐呢,已经播放了,我把声音调低一点啊。嗯,没问题,然后呢,我先把它关掉。嗯,没有问题,好的,那自动播放啊,我们也做完了啊,那这样的话呢,大家回头再看啊,那这个呢,就是我们分装功能函数的好处啊,等到你再次需要的时候一定要用,是不是就可以了呀。哎,没有问题,好,那我们再看啊。那现在呢,我假如说啊,我在啊,张震岳的这个爱我别走,这那么这个时候我再点下一首。
06:04
来,我们看一下network。我把这控制台清掉啊,大家看着我一点下一首,这就发请求了。但是啊,你看我一点下一首的发了上一首的歌呢,还在转,你看还在转。哎,那这个呢是不应该的。这样的话呢,其实用户体验不好。那么当用户点击下一首的时候,我不管下一首的音乐有没有及时的到,你上一首的音乐是不是应该先给人家停掉呀。啊,应该先要停掉啊,那这个时候呢,我们回到我们这个里边啊。呃,以上这呢是点击啊,我们歌曲的这个。回调,嗯,对吧,那么在我们正式的去干嘛呀。去发布消息说要我要切割的时候,那在之前呢,我们应该要干嘛要关闭。呃,当前播放的音乐,嗯,对了,不啊,要关闭当前播放的音乐,那么如何去关呢?也简单啊,我们还是通过这个背景音频的实例。
07:08
对吧,我们直接的去调一下它的stop方法就OK。好的,那这个时候啊,我们再来看来。刘德华的练习。我们进来好,那这个时候大家看啊,我先到下一首。好,那现在在播放,我再点下一首,哎,你看我一点把上一首就停掉了啊,那现在呢,是因为网速比较好。在音乐到达的快啊,所以这显示的就快,那我们再往下你看好,那现在大家看啊,刚才有个抬起的过程。啊,这样的话呢,会好一点啊,会好一点好的,那现在呢啊,我们已经把这个切换歌曲的功能做的差不多了啊差不多了,那这个时候我重新编译一下啊,大家再看一个东西。那么来这个列表重新加载了啊,假如说啊,我在第一首。
08:03
啊,用户进的是第一手,那么他是不是有可能点上一首呀。好,懂我一点上一首,你看这报错了。他一定会报错。为什么呢?我们在下标为零的时候,再找上一首的index是不是就负一了呀,为啥呢?在recommend这计算的时候啊,它没有考虑。啊,Ex到底是几,我们只管减一嘛,那零再减一是不是就负一了呀?那这肯定不行。所以呢,我们还要考虑什么啊,上一首跟下一首的临界值,也就是说我们要考虑这个音乐列表的临界值,就是第一首和最后一首的情况。对吧,哎,那如果第一首我们要干嘛呀。我们是不是让它自动的切换到最后一首呀?同样的道理,如果说最后一首的话,那再点击下一首。我们要干嘛,我们是不是要切换到第一手。哎,那这样的话呢,我们需要在这儿考虑临界值。
09:01
那当你一直点上一层的时候呢,我们要考虑啊,如果说哎,我们的index n等于零,我们怎么办,那这呢,我用个且的关系。对吧,啊这呢,大家应该大家应该也能看懂,如果说它等等于零。我们是不是想让这个音单词最终的值?应该是到最后一首,也就是说我们应该让index等等于,等于什么呀?我们这个数组recommend list呢,Length减一呀。啊,那这个解一的动作大家别忘了啊,我这一行代码放到这,那我下面就不动了,下面这呢,是不是会帮我们自动解一个一,所以呢,这就不需要解了,那这样的话呢,这等于Les以后再走这一行代码解一,那么最终的结果是不是就是Les解一啊?哎,没有问题。然后呢,这飘了个火啊,是因为什么?是web识别不了这种语法。那其实这边为了安全起见的话呢,你最好是加一个小括号。
10:01
那包括后边那呢,也加一个小括号表示呢,它是一个整体。那这样的话呢,就没有问题了。下一首,这同样的道理啊,如果说啊,我们的index呢,等等于我们当前这个列表数组的,哎,Length。对吧,减一,那我们要干嘛?我们是不是应该让一代等于我们的负一?哎,为什么要等于负一呢?因为下边这呢,会帮我们加一个一,最终的结果是不是就是零,那这呢还是加一个小括号。好的,那这样的话呢,来我们再来看一下过来。假设啊,我们来到第一首。好了,那现在呢,我们再点上一首走。哎,那这个时候呢,大家看啊,就来到了最后一首啊,就刘大壮的什么会不会。同样的道理,我从最后一首呢,我点下一首走。他是不是又回到了我们列表的第一首呀,哎,没有问题,好,那这样的话呢,哎,这个切换歌曲这呢,哎,我们就全部实现了来,那这节课呢,我们讲到这里。
我来说两句