1. 网易云音乐API怎么调用
2. 我想知道QQ音乐 百度音乐 有没有开放API 使之可以获取用户的音乐列表
★获取排行榜
目前抓到两个排行榜的地址:
新歌榜:http://music.qq.com/musicbox/shop/v3/data/hit/hit_newsong.js
总榜:http://music.qq.com/musicbox/shop/v3/data/hit/hit_all.js
因为还没有进行进一步的尝试就不放例子了
★获取音乐地址
http://stream1歌曲信息中的location值.qqmusic.qq.com/3歌曲ID(7位数,不足在前面补0). mp3
例如之前搜索出来的第一首歌的地址应该是:
http://stream18.qqmusic.qq.com/31679711. mp3
第二首歌的地址应该是
http://stream13.qqmusic.qq.com/31516144. mp3
这个仍然在测试中,希望对和我一样正在努力做在线音乐的童鞋有些帮助。
3. 如何使用抓包工具获取百度音乐api
试试抄看在<body>中输入这段代码:<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3689486-1");
pageTracker._initData();
pageTracker._trackPageview();
pagePublicTracker = _gat._getTracker("UA-10197155-1");
pagePublicTracker._initData();
var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm..com/h.js%' type='text/javascript'%3E%3C/script%3E"));
</script>
4. 百度音乐开放api官网说明在哪里 有研究过的朋友说下地址呗
没看懂你说的什么,但你要找的是网络开放api的网址是回http://alading..com
ps你是指ape这种音乐格式吗答
5. 在一个浏览器附加组件上添加QQ音乐,网易云等的API是侵权吗
用户不侵权 开发者侵权
6. 会声会影x6怎么处理音乐接口,我是新手,我接的音乐接口处太明显,请问怎处理接口
想要前后两段音乐接口处不至于太突兀,需要满足两个条件,第一,两段音乐的风回格、节奏不要答相差太大,如果碰到这样的接口,需要想办法加过渡音乐。第二,在两段音乐的接口处做淡入淡出的处理,这只要将两段音乐重叠一部分,重叠部分就自动会做淡入淡出处理。
7. 谁有音乐网站的api接口,要可用的,能读取出歌曲跟歌名就好了
如果你爱我 - 曹轩宾
词:曹轩宾
曲:曹轩宾
海的另一边
有我的思念
是苦是甜
是哪回一答种感觉
如果有一天
我们会相见
我说我爱你
会不会太直接
云和天离别
没说过再见
因为有风
为他带去思念
落下的琴弦
你如何听见
这旋律弥漫
记忆中你的脸
如果你爱我
如果你爱我
我想我一定是
世界最幸福的
你为我的生命
画上了最美的颜色
云和天离别
没说过再见
因为有风
为他带去思念
落下的琴弦
你如何听见
这旋律弥漫
记忆中你的脸
如果你爱我
如果你爱我
我想我一定是
世界最幸福的
你为我的生命
画上了最美的颜色
如果你爱我
如果你爱我
我想我一定是
世界最幸福的
你为我的生命
画上了最美的颜色
两颗心相恋
会有多少年
你我依然
记得曾经的画面
时间的变迁
生命的斑斓
我会牵着你
走共同的岁月
8. 音乐平台的“API ”和“接口”怎么对调使用
首要做的事情就是联系巅峰开放平台,申请相关的appid和appSecret。
然后保存到本地,在调用接口的版时候使用权,否则将无权限进行接口的调用。
9. 借用百度音乐API开发播放器是否违法
自己用没人管。。
10. 如何实现API背景音乐播放
第一篇写的这些内容很简单,跟链接作者写的几乎一样。
他写的比较复杂,有些实现方式也不一样,所以自己写个博客记录一下...O(∩_∩)O~
这个播放器很简单,如果你是什么Api都不知道,看了这个两天就写完了,你可以边看边查相关的API是干嘛用的,如果之前都了解了相关的API,那么一天就能编完。
做一个播放器的大致思路是什么呢?播放器当然是要有播放的功能咯,这是我在废话。这个播放器是不带下载功能的,所以肯定是从你手机中获取已经存在的音乐。于是第一步就是获取手机中的音乐信息,这个跟播放器的界面没什么联系,那你可以把它写成一个工具类,叫做GetMusicListUtil,专门用来获取手机音乐信息的类。
上代码:
public class GetMusicListUtil {
/**
* 从手机中得到所有的音乐,放在list中保存
*
* @param context
* @return
* @author Yang
*/
public static List<Mp3Info> getMusicInfos(Context context)
{
Cursor cursor = context.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
List<Mp3Info> musicInfos = new ArrayList<Mp3Info>();
for(int i=0; i<cursor.getCount(); i++)
{
cursor.moveToNext();
Mp3Info music = new Mp3Info();
long musicId = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media._ID));
String musicTitle = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.TITLE));
String musicArtist = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.ARTIST));
long musicTime = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media.DURATION)); //时长
long musicSize = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media.SIZE)); //文件大小
String musicUrl = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA)); //文件路径
int isMusic = cursor.getInt(cursor
.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));
//只把音乐添加到集合中
if(isMusic != 0)
{
music.setId(musicId);
music.setArtist(musicArtist);
music.setDuration(musicTime);
music.setSize(musicSize);
music.setUrl(musicUrl);
music.setTitle(musicTitle);
musicInfos.add(music);
}
}
return musicInfos;
}
/**
* 将因音乐的时长由毫秒转换成分:秒的格式
*
* @param time
* @return
* @author Yang
*/
public static String formatTime(long time) {
String min = time / (1000 * 60) + "";
String sec = time % (1000 * 60) + "";
if (min.length() < 2) {
min = "0" + time / (1000 * 60) + "";
} else {
min = time / (1000 * 60) + "";
}
if (sec.length() == 4) {
sec = "0" + (time % (1000 * 60)) + "";
} else if (sec.length() == 3) {
sec = "00" + (time % (1000 * 60)) + "";
} else if (sec.length() == 2) {
sec = "000" + (time % (1000 * 60)) + "";
} else if (sec.length() == 1) {
sec = "0000" + (time % (1000 * 60)) + "";
}
return min + ":" + sec.trim().substring(0, 2);
}
/**
* 将List<Mp3Info>转换成List<HashMap<String,String>>的格式
* 为了给SimpleAdapter填充数据
*
* @param musicInfos
* @return
* @author Yang
*
*/
public static List<HashMap<String,String>> getMusicHashMaps(
List<Mp3Info> musicInfos)
{
List<HashMap<String,String>> musicHashMaps =
new ArrayList<HashMap<String,String>>();
for(Iterator<Mp3Info> iterator = musicInfos.iterator();iterator.hasNext();)
{
Mp3Info music = iterator.next();
HashMap<String,String> map = new HashMap<String,String>();
map.put("title", music.getTitle());
map.put("artist", music.getArtist());
map.put("size", String.valueOf(music.getSize()));
map.put("time", formatTime(music.getDuration()));
map.put("url", music.getUrl());
musicHashMaps.add(map);
}
return musicHashMaps;
}
}
相信大家都能看懂,Cursor对象进行查询,然后存到一个Mp3Info类型的List中,之所以下面还写了一个List<HashMap<String,String>>进行保存,就是为了给SimpleAdapter用的,这个adapter给listView填充数据。
这个和原作者写的没什么区别,另外其中的Mp3Info是一个javabean,如下所示:
package org.com.ViPlayer;
public class Mp3Info
{
public long id;
public String title;
public String artist;
public long ration;
public long size;
public String url;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getArtist() {
return artist;
}
public void setArtist(String artist) {
this.artist = artist;
}
public long getDuration() {
return ration;
}
public void setDuration(long ration) {
this.ration = ration;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
有了音乐的信息之后,我们可以开始编辑界面了,我的界面里面的那些个图片也是在原创作者页面下载的。但是里面的模式稍微有些不一样,被我给简化了。。。
一共只用到了这么多图片:背景,播放按钮图,下一首按钮图,前一首按钮图,音乐模式按钮图,音乐小图标。
然后就是主界面xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bk1"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/handleButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" >
<Button
android:id="@+id/repeat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_alignParentLeft="true"
android:background="@drawable/repeat_none" />
<Button
android:id="@+id/previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_toRightOf="@+id/repeat"
android:background="@drawable/previous" />
<Button
android:id="@+id/playMusic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_toRightOf="@+id/previous"
android:background="@drawable/play" />
<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_toRightOf="@+id/playMusic"
android:background="@drawable/next" />
<!-- <Button
android:id="@+id/randomMode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_toRightOf="@+id/next"
android:background="@drawable/random1" /> -->
</LinearLayout>
<ListView
android:id="@+id/musicList"
android:layout_width="fill_parent"
android:layout_height="300dp"
android:layout_below="@+id/handleButton" >
</ListView>
<RelativeLayout
android:id="@+id/songInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/musicList"
android:layout_alignParentBottom="true"