包含tiktokhome的词条
推荐一些类似one direction的what makes you beautiful,Ke$ha的tiktok这样的歌~谢啦
我也是1D粉哦~(好吧,废话不多说,下面给你推荐我播放器里比较好听的歌曲)
(使用浏览器扫码进入在线客服窗口)
复制联系方式
【PS。可能有的歌曲不是很常见,但是百分之一百都是好歌、】
首先从1D歌曲开始
【One Direction】
1.I Should Have Kissed You【破团的那几首爆火的歌都被翻遍了,其实他们专辑里的每一首歌都超级好听】
2.Gotta Be You【这个也是破团的,听着很舒服,和MV很搭配啊,特别安静的感觉】
3.Everything About You【这个我也超爱的~~】
4.Moments【这首歌也有种很安静的感觉,破团的每首歌都很有爱啊!】
(1D的,LL既然知道what makes you beautiful,我觉得其他的很火的歌也肯定听了,如果没听的话,建议听听,真的很棒,还有就是boys英国偶像总决赛唱的torn,非常好听)
【Greyson Chance】
1.Hold On 'Till The Night【GC的每首歌都很天籁啊,他的嗓音真的很棒】
2.Waiting Outside The Lines【我第一次知道GC的时候是这首歌,从此就加入到我最爱的列表里去了(这首不是他的成名曲,但真的很棒)
3.Home Is In Your Eyes【这首也有爱啊~推荐去听听】
(如果这几首喜欢的话,可以听听greyson的全部歌曲,同样非常好听)
【Justin Bieber】
(我除了1D也喜欢justin,看我ID就知道了。。不知道LL喜不喜欢他的歌,推荐两首我喜欢的吧)
1.As Long As You Love Me【这首歌是新专believe里面的,很好听】
2.Baby【这首歌很经典啊~】
3.Overboard【这首歌很动人,很安静】
(还是那句话,喜欢推荐听全部的,都是很好的歌)
【The Wanted】
(他们的歌都很快,也非常好听)
1.Glad You Came 【这首歌很火,原来一直名列前茅啊】
2.Chasing The Sun【这首也是百分百的好听啊】
(还是那句话,我就不重复了)
【Lemonade Mouth】
(电影:柠檬大嘴巴里的歌曲都很棒)
1.She's So Gone【这是柠檬大嘴巴里我最爱的一首,到高潮有一种小宇宙爆发的感觉】
2.Somebdy【同样很好听】
(喜欢的话可以看看电影)
【后面是大集合】(我承认一个一个打有点费劲)
Taylor Swift-We Are Never Ever Getting Back【这个应该是新单曲吧~很好听~大爱taylor的歌啊~】
Natalie Imbruglia-Torn【前面说到了1D总决赛那首torn就是翻唱这个的~原版也很好听】
Justin Williams-Lying【这首歌真的很棒,百听不厌】
kate havnevik-So:Lo【这首歌不是很常见,是一首很悠闲的歌曲~推荐推荐】
Maroon5-payphone【好听好听~maroon5的歌都很不错】
Flo Rida-whistle【这首歌也很轻松的那种~很好听啊!一直在榜上】
Jaron-Pray For You【这首歌被称为史上最恶毒的分手歌,很悠闲的一首歌~歌词很可爱啊】
B.o.B.-Nothin' On You【这个是B.O.B.联手Bruno Mars唱的~很清新,很休闲的感觉】
Nelly-Just A Dream【很好听,推荐听听】
Alexandra Burke-The Silence【有种很强大的感觉,很好听】
Leona Lewis-I Got You【真的很好听~强烈推荐,还有Bleeding Love那首也超级好听】
Ke$ha-Tik Tok【这首歌你肯定知道了,但是还是没忍住,再推荐一遍吧~】
Gym Class Heroes-Stereo Hearts【前面很安静,后面就开始说唱了~我是从广告背景音乐里
发现这首歌的,很好听啊】
Atomic Kitten-Nothing In The World【她们声音都很美的,这首歌真的是超级好听】
Carly Rae Jepsen-Call Me Maybe【这个可以算是欧美神曲了~】
Katy Perry-Wide Awake【水果姐的歌不能少啊~还有Part Of Me,Hot N Cold...都是超级好听的歌曲】
Lady GaGa-paparazzi【这首歌很棒啊~GC好像就是唱这首歌出名的吧~GAGA姐也是必不可少的啊】
Kat DeLuna-Calling You【一个购物狂的自白里的插曲,很自由很爽的感觉,The rhythms calling you~~~~】
Lucy Hale-Bless Myself【灰姑娘的故事3里的,推荐看看电影】
Kelly Clarkson-What Doesn't Kill You【还有Because Of You也不错~很强大~】
Lights-The Listening【有种很古灵精怪的感觉(好吧我词穷了,但也是好歌)】
Selena Gomez-Who Says【S妞的声音很美~这首歌很轻松,推荐】
We The Kings-Say You Like Me【这首歌也很好听~大爱啊~】
Weatherstar-Give It Up【这首歌是我最早收进列表里的~有点快~很有活力】
Linkin Park-In The End【我很喜欢的一首~】
以上推荐的歌手和歌曲都很棒【当然也有我没推荐到的】,喜欢可以去听听他们的歌曲,我推荐的比较少。如果还想找歌曲的话可以去:音悦台,YouTube,微博上找找,很多好听的呢~有的电影里的插曲也很棒,我就老能在电影里发现好歌。。【我也很爱看电影,所以老能发现好听的插曲】
LL采不采纳都没关系,我就是想推荐一下这些好听的歌~
belieber_sara
求好听的英文歌 如 TikTok 德国童声 Bye Bye Beautiful 同类型的等等
Never Had A Dream Come True - S Club 7
Because You Loved Me - Celine Dion
losing the love
Loving You - Minnie Riperton
I Love You Forever - Jewel
Satisfied - Jewel 我听都是女声 , 希望你会喜欢哦 #
怎样在切入切出虚拟摄像头时营造卡顿效果
背景介绍:本人原先是android逆向工程师,后来因为工作变动,离开了协议分析这类的岗位,目前在做直播机与第三方应用兼容性分析相关分析,所以就有了这篇兼容性分析文章。
问题:tiktok在我们推流设备直播时,经过几个特定步骤后切换前后置摄像头会出现卡住的问题。
重现步骤:直播界面打开更多菜单 - 然后退到后台 - 回到前台 -切换前后置菜单。
现象:直播画面卡住不动了。
解决思路:找到点击切换按钮后的点击事件回调,找到切换摄像头的核心逻辑,来找到卡住原因。
1、如果了解ART虚拟机的同学会知道,jni函数和java函数都会调用到art虚拟机ArtMethod的Invoke函数。

输出日志:
find target method: android.view.View.performClick
ArtMethod Invoke【22955】: ; lr:0x4af78c; libart.so: android.view.View.performClick
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.lang.Enum.toString
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: X.Ggh.LIZ
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.util.LinkedHashMap.init
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.util.HashMap.putAll
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: java.util.HashMap.put
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: X.DED.LIZ
ArtMethod Invoke【22955】: ; lr:0x2e2800; libart.so: X.D5k.onClick
通过frida hook libart.so的ArtMethod的Invoke函数,我们找到了点击事件的回调类X.D5k.

找到这个类对应的onClick函数后,我对整个流程做个简单的研读,感觉发现了核心代码在注释直播流处理。

跟着核心代码一路往下找到LiveCore这应该就是直播的核心代码,其实现类为LiveCoreImpl,ILiveStream的实现类为LiveStream。


发现此处只是做了日志信息的合成和应用镜像之类的代码,但是又找到一个核心的类LiveStreamVideoCapture。

追踪到这里发现链路断了,又凑巧通过frida打开tiktok卡死在启动页上,那么接下来使用Xposed继续理流程。
上面的代码虽然没有追中到切换摄像头的核心逻辑,但是我们找到了两个核心逻辑的类LiveStreamVideoCapture和LiveCoreImpl,分别和直播视频流控制直播核心流程控制相关,所以Xposed继续走的时候以这两个类为重点,那么此处就开始放大招了,hook这两个类的所有函数,贴上代码。注意这里使用的classloader是application的classloader。


日志太多了,这里通过shell命令setprop做了个日志控制。



然后找到CameraVideoCapturer类的tryDeliverFrame,这里是处理相机的视频帧,感觉越来越接近真相了,继续hook这个方法,然后发现相机切换卡住以后,这个方法也停止调用了,那么没办法,继续往上找堆栈中run方法的调用调用处。

继续hook。


找到这个类。

至此,熟悉相机开发的同学应该知道,这就是SurfaceTexture.setOnFrameAvailableListener后,相机的可用帧会回调到这个函数,切换相机后卡顿,可用帧也同时不回调。
接下来hook原生相机。



调用的是android.hardware.Camera,也就是camera1相关的api,切换卡顿的时候并没有调用Camera.open函数。


首次开直播的时候调用了这两个函数,点击切换相机的时候并没有调用,在X.HCF这个类里找到switchCamera函数,那么猜测首次开相机,和切换前后相机走的并不是同一个流程,因为这个bug只有在切换相机时才会出现,所以我们就不关注首次开相机的流程。


果然,切换相机的时候走了这个流程,这是又发现了LiveStreamVideoCapture这个核心类,那么简单进去看看SwitchCaptureRunnable这个有没有被创建。


经过测试,发现这个类只会被创建一次,而run方法每次切换都会被调用,而且卡住的情况下也会被调用,那么结合上面Camera.open卡住时没有调用,可以大胆的猜测中间过程某个条件不满足被return了。根据堆栈信息继续往下找几个关键点。


发现CameraVideoCapture里也有切换相机的流程,切一步步往下走,能调用到上面我们hook过的X.HCF的switchCamera,那么我们就看看这里的switchCamera有没有调用吧。
•情况一:先滑动直播界面,再按home键,然后回到tiktok,再切换相机,此时status()函数返回1,走了后续Camera.open流程。


•情况二:先滑动界面,再切换相机,然后按home键,接着回到tiktok,最后切换相机,此时status()函数返回2,没走后续Camera.open流程。

从日志看switchCamera两种情况都走了,再结合switchCamera的源码看,源码里的status()函数的返回值决定了是否继续往下调用切换相机的流程,很遗憾的是,两种情况都出现了,而且都会卡住(为什么两个status值会不一样呢,这里先留个坑,最后来填)。这可把我难住了!
就在这时脑子突然开窍,既然画面卡住,那么必然有错误信息回调,果然一搜索CameraVideoCapture这个核心类有onError函数,毫不犹豫hook它,发现每次出错时,这个函数的错误码都会报-421错误(截图省略-421错误码的测试过程)。


错误信息非常明确的告诉我们是因为相机不支持缩放,导致的打开相机失败,那么至此相机卡住的直接原因找到了,但是还没找到为什么特殊的操作流程后会卡住,而正常的操作不会。于是乎继续跟着堆栈信息往上找。

发现走进了这里的流程,导致的相机进缩放流程,为了验证猜想,我决定在这个函数调用前,把message里的what字段改成2,让它不走这个流程,来看看是不是就不会导致界面卡住,于是就有了下面这段代码。

经过这一番篡改,果真随便怎么折腾,直播界面都不会卡住了。那么我只要找到那里给handler发送的这个message就应该离真想很近了。


然后找这个handler的sendMessage相关切message的what字段赋值为1的函数。

然后我找到了它,这个函数还和缩放相关,那就八九不离十了。


按之前的堆栈继续hook,发现卡住的时候这些方法确实都走了,而正常的时候是不走的,那么在X.Dvc的LIZ继续用抛堆栈大法。
得到如下两种堆栈:
•X.DCM接收到了touch事件,然后交由X.DCc这个类进行手势判断,发现是需要执行缩放的手势,于是执行了相机的缩放功能(由于我们业务原因需要隐藏底部NavigationBar,在Window底部上划会显示NavigationBar,上划的手势同时触发了控件的以为需要执行相机缩放),但是我们的虚拟摄像头又不支持缩放,导致打开相机失败,画面就卡在了之前相机拿到的最后一帧。

X.DCc类

X.DCO的invoke方法

•点击tiktok的切换相机Button,触发进入相机的缩放,这里就和我们之前的点击事件联系上了,红框部分就是补上了之前没关注但是最重要的相机缩放功能判断部分。


至此,我们已经把相机卡住的直接原因和根本原因都找到了,先手势再点击切换相机触发了进入相机缩放功能判断流程,由于我们的虚拟相机不支持缩放,导致打开相机失败,卡在相机的最后一帧(也可能是黑屏)。所以只要交付给framework组开发人员,让他们支持相机缩放相关功能就可以了。
接下来来填前面留下的坑,为什么退到后台会导致status函数的返回值不一样?
我们回到CameraVideoCapturer类,看看这个status()函数到底是个什么鬼!

发现他是父类ExternalVideoCapturer的函数,而且就是返回个字段,那再看看他那里进行了赋值。

通过AndroidStudio自带的字段读写索引功能,很容易找到父类里的start、stop和release函数,以及自身的onErrorOnHandler函数里(也就是我们之前抛-421错误堆栈的函数)。如果熟悉相机开发的同学应该知道,一般我们界面退到后台会释放相机,然后回到前台重新打开。那么接下来我们把这几个函数都hook一下,来验证猜想。

这里我多hook了一个onCaptureStarted函数,这个函数会调用父类的onStart函数,想看看是否会有调了onCaptureStarted但是没调父类的onStart的情况。然后还hook了CameraVideoCapturer自身重写的onStart和父类ExternalVideoCapturer的onStart函数。
下面是刚打开直播时的日志,此时status=1。

•情况一:先滑动直播界面,再按home键,然后回到tiktok,再切换相机,此时status()函数返回1,走了后续Camera.open流程。
这是直播退到后台时的调用,说明确实释放掉了,但是又调用了父类的onStart函数,那么此时的应该为2的status又变回了1。

接下来回到前台,此时一切正常status还是为1,而且重走了自身的onStart函数,相当于相机整个流程完全重开。

再接着切换相机第一次,这时的status还是为1,相机正常,紧接着我们发现了-421错误,发现又重走了父类的onStart函数,那么此时status还是1。

接下来切换相机画面卡住了,但还是走了父类的onStart。


以上就是第一种情况,由于每次切换相机都会抛完-421错误后,再调用父类ExternalVideoCapturer的start函数来重置status,也就造成了能调用Camera.open但是画面卡住的情况。
•情况二:先滑动界面,再切换相机,然后按home键,接着回到tiktok,最后切换相机,此时status()函数返回2,没走后续Camera.open流程。
前面流程就不贴了,直接开后面的流程记录。
退到后台 status=1

回到前台status=1

切换相机第一次,画面正常status=1

切换相机第二次,在调用switchCamera之前先抛了一次-421的错误,导致status=2,然后switchCamera函数里判断status为2就被return,没有调用Camera.open函数,接下来也没有更多函数来重置status的状态,所以无论怎么切换相机,都无法执行到Camera.open(),除非tiktok退到后台,再回到前台。


以上就是第二钟情况。
有没有什么好听的英文歌啊~
David
Usher的《Black
Black
Heart》
相信你一定一定会喜欢的,很喜欢歌曲背景音乐中的女声!
Mark
Terenzi的《love
to
be
loved
be
you》
很感人,特别是唱到baby
,tell
me
how
can
i
tell
you
that
i
love
you
more
than
life
的时候就忍不住想哭
Karunesh的《Secrets
of
Life》
充满生命力,悠扬绵长的笛声配合强劲的鼓点,演奏出脉搏跳动一样的主旋律,听的我真是~~
Ivana
Spagna
的
《Con
Il
Tuo
Nome》
意大利女歌手Ivana
Spagna演唱的这首委婉凄美的歌曲令人感到一股莫明的悲伤,是一种痛到极处的欲哭无泪,她那高亢浓郁的嗓音用一个个伤感的旋律把你带入哀伤与悲凉的旋涡。
E
Nomine
的
《Das
Rad
des
Schicksals》
有一种超凡脱俗的感觉,飘渺的女声与电子乐的美妙组合,很不一样的感觉!
СЕРДЦЕ
的《НИКОЛАЙ
БАСКОВ》
这首俄语歌曲沙哑、空灵的女声让人感到一种默然的忧伤、悠远的悲凉。
喜欢这首歌曲前段木管乐器演奏出的苍凉感,第一次听就因为开头的一小段给迷上了;或许,乐曲跟女人一样,有时候你会因为她给你的最初印象中的某一个闪光点,而对她痴迷不已。
Luar
na
Lubre
《Memoria
da
Noite》
太喜欢这首歌的音乐了!音乐——真是人的感情的最好表达和宣泄!——任何的感情,就像这首!一种离愁!思乡的愁...
凄凉的风笛和着海浪声,是在召唤她心爱的人吗?忧伤的音乐总是让人浮思连篇...
Natasha
St-Pier的《Un
ange
frappe
a
ma
porte》
蛮喜欢这首歌曲的,充满了东方韵味的法语歌曲!
求类似于tiktok,smile,firework的英文女歌手的歌
On My Balcony——Flunk
Me And You——Lucky Twice
The Magic Key——群星
Cinderella - Play
STOP STOP STOP(停停停)——群星
Stay Here Forever——Jewel
Far Away From Home——Groove Coverage
She ——Groove Coverage
Lambada——Aycan
let me show you the way——Natasha Thomas
I'm In Here——Sia
Bye Bye Bye——Lovestoned
California Girls——Snoop Dogg Katy Perry
Love The Way You Lie——Eminem Rihanna
什么英文歌最好听?
玛丽亚
凯丽
就是张靓颖唱的LOVING
YOU
原唱就是她了
U2的世界上最成功的摇滚乐团。
后街男孩的也不错啊。
As
Long
As
You
Love
Me
Groove
Coverage组合。GOD
IS
A
GIRL
都不错
英国R&B王子,克雷格.大卫-SEVEN
DAYS
你自己可以去搜索来听.都不错的他们的歌
日本的
仓木麻衣
大冢爱
Only
Love
(Trademark)
My
Love
(Westlife)
What
Will
I
Do
(Cagnet)
Before
I
fall
in
love
(李纹)
Hear
Me
Cry
(Cagnet)
Anyone
of
us
(Gareth
Gates)
My
Heart
Will
Go
On
Shining
Friends
(Cookies)
Open
Up
Your
Dream(张靓颖)
Melody
Fair
(Twins)
Goodbye
(卫兰)
Never
Let
You
Go
(“大哥”英文版-卫兰)
In
Love
Again
(我这样爱你-卫兰)
Chocolate
Lec(听身体唱歌-卫兰)
2004(两个人的烟火-卫兰)
Superman(双鞋-卫兰)
My
Love
My
Fate(卫兰)
Lene
Marlin的歌是不错的选择
《unforgivable
sinner》
《sitting
down
here》
《The
Way
We
Are》
《One
Year
Ago》
《So
I
See》……
Arvil的歌也很好~有摇滚的曲风,而且大多是她自己创作的
《skater
boy》
《Naked》
《take
me
away》
《my
world》
《Together》……
如果你喜欢摇滚还可以试试Linkin
Park
《FAINT》
《somewhere
I
belong》
《my
december》
《in
the
end》……