三、点播歌曲
来源:互联网 发布:武汉软件新城 大巴 编辑:程序博客网 时间:2024/05/02 02:19
微信点歌其实已有很多博客写过,不过重复超超轮子就当锻炼锻炼身体嘛。先上效果图
回复2.2@谢谢你的爱,它先会去找这首歌,然后返回回来,如果找的不是你想点的歌曲,则需要中上歌手名称,如2.2@谢谢你的爱谢霆锋
代码部分如下
1、统一回复调用方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//这里只对文本消息进行处理
private
function
reply(
$data
){
if
(
'text'
==
$data
[
'MsgType'
]){
$text
=
$data
[
"Content"
];
if
(
$text
==
"?"
){
return
$this
->get_main_datas();
}
$_menu_text
=
strpos
(
$text
,
"@"
)===false?
$text
:(string)doubleval(
$text
);
//当需要查询时,指令为1.1@xxx使用进行doubleval转换
if
(
array_key_exists
(
$_menu_text
,
$this
->all_info)){
//存在于菜单中,当输入,1 2 3 时
return
$this
->get_replay_datas(
$_menu_text
,
$text
,
$data
[
"FromUserName"
]);
}
return
$this
->hello();
}
elseif
(
'event'
==
$data
[
'MsgType'
] &&
'subscribe'
==
$data
[
'Event'
]){
//订阅写入数据表
return
$this
->hello();
//$reply = array('欢迎您关注桂林小魔方童装公众助手! 打开我们的网站:http://aidemofang.com 可以了解最新的款式和价格.', 'text');
}
else
{
exit
;
}
}
//取得回复的信息
private
function
get_replay_datas(
$_menu_text
,
$text
,
$fromUser
){
$menu_text
=
strlen
(
$_menu_text
)==1?
$_menu_text
-1:
$_menu_text
;
$method
=
$this
->get_method(
$menu_text
);
$param
=null;
if
(
strpos
(
$text
,
"@"
)!==false){
$arr
= preg_split(
"/@/"
,
$text
);
$param
=
$arr
[1];
}
return
$this
->
$method
(
$param
,
$fromUser
);
}
2、点歌实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//歌曲点播
public
function
get_song(
$song_title
,
$fromUser
){
//$song_title="春天里";
$m_param
=
array
(
"op"
=>
"7"
,
"mode"
=>
"1"
,
"count"
=>
"1"
,
"title"
=>
$song_title
);
$song_datas
=http(
"http://box.zhangmen.baidu.com/x"
,
$m_param
);
$song_utf8
=utf8(
$song_datas
,
"gbk"
);
preg_match_all(
'/\<name\>(.*?)\<\/name\>/s'
,
$song_utf8
,
$matchs
);
if
(
count
(
$matchs
)>1){
$song_name
=
$matchs
[1][0];
}
if
(
empty
(
$song_name
)){
return
array
(
"未找到这首歌,检查一下网络或咱们换一首吧."
,
"text"
);
}
$param
=
array
(
"op"
=>
"12"
,
"count"
=>
"1"
,
"title"
=>trim(
"$song_name"
)
);
//查找作者的这首歌
$datas
=http(
"http://box.zhangmen.baidu.com/x"
,
$param
);
$xml
=
new
DOMDocument();
$xml
->loadXML(
$datas
);
$lst
=
$xml
->getElementsByTagName(
'encode'
);
//普通质量地址
$item
=
$lst
->item(0);
$pre
=
$item
->nodeValue;
$suffix
=
$item
->nextSibling->nodeValue;
$MusicURL
=
str_replace
(
strrchr
(
$pre
,
"/"
),
""
,
$pre
).
"/"
.
str_replace
(
strrchr
(
$suffix
,
"&"
),
""
,
$suffix
);
//高质量地址
$item
=
$lst
->item(0);
$pre
=
$item
->nodeValue;
$suffix
=
$item
->nextSibling->nodeValue;
$HQMusicUrl
=
str_replace
(
strrchr
(
$pre
,
"/"
),
""
,
$pre
).
"/"
.
str_replace
(
strrchr
(
$suffix
,
"&"
),
""
,
$suffix
);
$datas
=
array
();
$datas
[]=
str_replace
(
'$'
,
""
,
$song_name
);
//音乐标题
$datas
[]=
"来自互联网"
;
//音乐描述
$datas
[]=
"$MusicURL"
;
//音乐链接
$datas
[]=
"$HQMusicUrl"
;
//高质量音乐链接,WIFI环境优先使用该链接播放音乐
$this
->sendLyric(
str_replace
(
'$$'
,
"-"
,
$song_name
),
$fromUser
);
return
array
(
$datas
,
"music"
);
}
private
function
sendLyric(
$song_name
,
$fromUser
){
$param
=
array
(
"key"
=>
"free"
,
"appid"
=>
"0"
,
"msg"
=>
"歌词"
.
$song_name
);
$datas
=http(
"http://api.ajaxsns.com/api.php"
,
$param
);
$json
=json_decode(
$datas
);
if
(
$json
->result==0){
$content
=
str_replace
(
"{br}"
,
"\n"
,
$json
->content);
$content
.=
"\n\n小助手:回复 @ 进入主界面"
;
import(
'@.ORG.ThinkWechat'
);
$weixin
=
new
ThinkWechat ();
$result
=
$weixin
->sendMsg(
$content
,
$fromUser
,
"text"
);
//发送歌词
Log::write(
" init data ->"
.
$fromUser
.
" ,content =$content"
);
Log::write(
"result -> "
.print_r(
$result
,true));
}
}</name\>
*上面增加了发送歌词接口,自动发送给客户端,可惜我是订阅号,似乎没有那上权限,so,放弃吧.
0 0
- 三、点播歌曲
- 爬去百度音乐的歌曲,突破不能点播的限制,将其下载。
- 歌曲
- 歌曲
- 歌曲
- 歌曲
- 歌曲
- 歌曲
- 三首儿时歌曲的歌词
- 整理:用matlab创作歌曲(三)
- nginx开发(三)搭建rtmp点播系统
- 豆瓣电台总结(三)歌曲列表展现
- android 更新歌曲播放进度条seekbar的三种方法
- Qt使用三句代码播放网络歌曲
- 点播系统分析
- 关于点播
- 暴风云视频平台点播SDK使用介绍(三)-- 视频播放(IOS)
- EasyRTMP之MP4文件进行rtmp点播直播推送(三)
- svn 钩子 post-commit 出现255错误解决办法
- 送师父去北京
- 第八章实验7
- 算法导论习题2.3-6 用二分查找改进插入排序(c实现)
- PHP数组和Json之间的转换
- 三、点播歌曲
- OpenGL学习
- Python-Project Euler 27
- Error:could not open '...jvm.cfg'解决办法
- 东方辉针城简易修改器
- 将一个string字符串变量分解为字符输出
- jsp资源路径设置
- 10-Linux-fdisk
- 编译原理学习笔记04——(孙悟空学72变之菩提老祖的阴谋—可怕的左递归)——2014_1_18