文档库 最新最全的文档下载
当前位置:文档库 › 基于Android的在线音乐播放器开发

基于Android的在线音乐播放器开发

基于Android的在线音乐播放器开发
基于Android的在线音乐播放器开发

从本文开始,详细讲述一个音乐播放器的实现,以及从网络解析数据获取最新推荐歌曲以及歌曲下载的功能。

功能介绍如下:

1、获取本地歌曲列表,实现歌曲播放功能。

2、利用硬件加速感应器,摇动手机实现切换歌曲的功能

3、利用jsoup解析网页数据,从网络获取歌曲列表,同时实现歌曲和歌词下载到手机本地的功能。

4、通知栏提醒,实现仿QQ音乐播放器的通知栏功能.

涉及的技术有:

1、jsoup解析网络网页,从而获取需要的数据

2、Android中访问网络,获取文件到本地的网络请求技术,以及下载文件到本地实现断点下载

3、线程池

4、图片缓存

5、service一直在后台运行

6、手机硬件加速器

7、notification通知栏设计

8、自定义广播

9、android系统文件管理

主要技术是这些,其中,利用jsoup解析网络网页,从而获取需要的数据,请参考我的博文:android中使用JSOUP如何解析网页数据详述

下面是最终结果展示:

图一本地歌曲列表

图二网络歌曲列表

图三播放歌曲界面

图四播放界面歌词显示部分

图五通知栏展示播放和下载时的展示

在本地歌曲列表界面长按菜单键可以显示菜单:

在网络歌曲列表中,点击歌曲,可以显示下载和取消菜单项:

基本的界面就是上面的图所展示的。大家觉得还可以的话,就给留个言~~^_^【握手】

下面就开始详细讲述实现细节。首先提一点,播放器中获取的网络歌曲部分,请参看我的博文:android中使用JSOUP如何解析网页数据详述

网络歌曲列表的获取就是利用jsoup从网页抓取数据进行展示的。关于这部分的东西,在本系列博文中不再详细说明了。

关于音乐播放器部分,需要使用到service服务,总共需要两个,一个是音乐播放的service,一个是歌曲下载的service,关于service一直在后台运行的问题,请参考我的博文:实现音乐播放器后台Service服务一直存在的解决思路

根据这篇博文的说明,很容易设计application类的实现,application类实现代码如下:/**

* 2015年8月15日 16:34:37

* 博文地址:https://www.wendangku.net/doc/c010104950.html,/u010156024

*/

publicclass App extends Application {

publicstatic Context sContext;

publicstaticint sScreenWidth;

publicstaticint sScreenHeight;

@Override

publicvoid onCreate() {

super.onCreate();

sContext = getApplicationContext();

startService(new Intent(this, PlayService.class));

startService(new Intent(this, DownloadService.class));

WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERV ICE);

DisplayMetrics dm = new DisplayMetrics();

wm.getDefaultDisplay().getMetrics(dm);

sScreenWidth = dm.widthPixels;

sScreenHeight = dm.heightPixels;

}

}

application类中启动了上面的两个service服务,同时获取了手机屏幕的宽和高。手机宽和高是为了后i面设计界面使用的。

有了application之后就可以设计Activity类,首先设计BaseActivity类,把复用的代码放在基类中,子类覆盖或重写BaseActivity中的方法,代码如下:

/**

* 2015年8月15日 16:34:37

* 博文地址:https://www.wendangku.net/doc/c010104950.html,/u010156024

*/

publicabstractclass BaseActivity extends FragmentActivity {

protected PlayService mPlayService;

protected DownloadService mDownloadService;

privatefinal String TAG = BaseActivity.class.getSimpleName();

private ServiceConnection mPlayServiceConnection = new ServiceConnection() { @Override

publicvoid onServiceDisconnected(ComponentName name) {

L.l(TAG, "play--->onServiceDisconnected");

mPlayService = null;

}

@Override

publicvoid onServiceConnected(ComponentName name, IBinder service) {

mPlayService = ((PlayService.PlayBinder) service).getService();

mPlayService.setOnMusicEventListener(mMusicEventListener);

onChange(mPlayService.getPlayingPosition());

}

};

private ServiceConnection mDownloadServiceConnection = new ServiceConnection() {

@Override

publicvoid onServiceDisconnected(ComponentName name) {

L.l(TAG, "download--->onServiceDisconnected");

mDownloadService = null;

}

@Override

publicvoid onServiceConnected(ComponentName name, IBinder service) {

mDownloadService = ((DownloadService.DownloadBinder) service).getSe rvice();

}

};

/**

* 音乐播放服务回调接口的实现类

*/

private PlayService.OnMusicEventListener mMusicEventListener =

new PlayService.OnMusicEventListener() {

@Override

publicvoid onPublish(int progress) {

BaseActivity.this.onPublish(progress);

}

@Override

publicvoid onChange(int position) {

BaseActivity.this.onChange(position);

}

};

/**

* Fragment的view加载完成后回调

*

* 注意:

* allowBindService()使用绑定的方式启动歌曲播放的服务

* allowUnbindService()方法解除绑定

*

* 在SplashActivity.java中使用startService()方法启动过该音乐播放服务了

* 那么大家需要注意的事,该服务不会因为调用allowUnbindService()方法解除绑定

* 而停止。

*/

publicvoid allowBindService() {

getApplicationContext().bindService(new Intent(this, PlayService.clas s),

mPlayServiceConnection,

Context.BIND_AUTO_CREATE);

}

/**

* fragment的view消失后回调

*/

publicvoid allowUnbindService() {

getApplicationContext().unbindService(mPlayServiceConnection); }

@Override

protectedvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//绑定下载服务

bindService(new Intent(this, DownloadService.class),

mDownloadServiceConnection,

Context.BIND_AUTO_CREATE);

}

@Override

protectedvoid onDestroy() {

unbindService(mDownloadServiceConnection);

super.onDestroy();

}

public DownloadService getDownloadService() {

return mDownloadService;

}

/**

* 更新进度

* 抽象方法由子类实现

* 实现service与主界面通信

* @param progress 进度

*/

publicabstractvoid onPublish(int progress);

/**

* 切换歌曲

* 抽象方法由子类实现

* 实现service与主界面通信

* @param position 歌曲在list中的位置

*/

publicabstractvoid onChange(int position);

}

下面给出启动界面,启动界面非常简单,延时2秒进入主界面,代码如下:/**

* 2015年8月15日 16:34:37

* 博文地址:https://www.wendangku.net/doc/c010104950.html,/u010156024

*/

publicclass SplashActivity extends Activity {

@Override

protectedvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// no title

requestWindowFeature(Window.FEATURE_NO_TITLE);

// 全屏

getWindow().setFlags(https://www.wendangku.net/doc/c010104950.html,youtParams.FLAG_FULLSCREEN,

https://www.wendangku.net/doc/c010104950.html,youtParams.FLAG_FULLSCREEN);

setContentView(https://www.wendangku.net/doc/c010104950.html,yout.splash_layout);

// 2s跳转到主界面

new Handler().postDelayed(new Runnable() {

@Override

publicvoid run() {

startActivity(new Intent(SplashActivity.this, MainActivity.clas s));

finish();

}

}, 2000);

}

}

本系列博文,详细讲述一个音乐播放器的实现,以及从网络解析数据获取最新推荐歌曲以及歌曲下载的功能。

功能介绍如下:

1、获取本地歌曲列表,实现歌曲播放功能。

2、利用硬件加速感应器,摇动手机实现切换歌曲的功能

3、利用jsoup解析网页数据,从网络获取歌曲列表,同时实现歌曲和歌词下载到手机本地的功能。

4、通知栏提醒,实现仿QQ音乐播放器的通知栏功能.

涉及的技术有:

1、jsoup解析网络网页,从而获取需要的数据

2、Android中访问网络,获取文件到本地的网络请求技术,以及下载文件到本地实现断点下载

3、线程池

4、图片缓存

5、service一直在后台运行

6、手机硬件加速器

7、notification通知栏设计

8、自定义广播

9、android系统文件管理

主要技术是这些,其中,利用jsoup解析网络网页,从而获取需要的数据,请参考我的博文:android中使用JSOUP如何解析网页数据详述

上一篇博文:android-音乐播放器实现及源码下载(一)

有了上一篇博文的准备,现在可以设计主界面,代码如下:

/**

* 2015年8月15日 16:34:37

* 博文地址:https://www.wendangku.net/doc/c010104950.html,/u010156024

*/

public class MainActivity extends BaseActivity implements OnClickListener {

private static final String TAG = MainActivity.class.getSimpleName();

private ScrollRelativeLayout mMainContainer;

private Indicator mIndicator;

private TextView mLocalTextView;

private TextView mSearchTextView;

private ViewPager mViewPager;

private View mPopshownView;

private PopupWindow mPopupWindow;

private ArrayList mFragments = new ArrayList();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/c010104950.html,yout.activity_main);

registerReceiver();

initFragments();

setupViews();

}

/**

* 注册广播接收器

* 在下载歌曲完成或删除歌曲时,更新歌曲列表

*/

private void registerReceiver() {

IntentFilter filter = new IntentFilter( Intent.ACTION_MEDIA_SCANNER_STARTED);

filter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);

filter.addDataScheme("file");

registerReceiver(mScanSDCardReceiver, filter);

}

private void setupViews() {

mMainContainer = (ScrollRelativeLayout) findViewById(R.id.rl_main_container);

mIndicator = (Indicator) findViewById(R.id.main_indicator);

mLocalTextView = (TextView) findViewById(https://www.wendangku.net/doc/c010104950.html,_main_local);

mSearchTextView = (TextView) findViewById(https://www.wendangku.net/doc/c010104950.html,_main_remote);

mViewPager = (ViewPager) findViewById(R.id.vp_main_container);

mPopshownView = findViewById(R.id.view_pop_show);

mViewPager.setAdapter(mPagerAdapter);

mViewPager.setOnPageChangeListener(mPageChangeListener);

mLocalTextView.setOnClickListener(this);

mSearchTextView.setOnClickListener(this);

selectTab(0);

}

private OnPageChangeListener mPageChangeListener = new OnPageChangeListener() {

@Override

public void onPageSelected(int position) {

selectTab(position);

mMainContainer.showIndicator();

}

@Override

public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

mIndicator.scroll(position, positionOffset);

}

@Override

public void onPageScrollStateChanged(int position) {

}

};

private FragmentPagerAdapter mPagerAdapter =

new FragmentPagerAdapter(getSupportFragmentManager()) {

@Override

public int getCount() {

return mFragments.size();

}

@Override

public Fragment getItem(int position) {

return mFragments.get(position);

}

};

/**

* 切换导航indicator

* @param index

*/

private void selectTab(int index) {

switch (index) {

case 0:

mLocalTextView.setTextColor(getResources().getColor(R.color.main));

mSearchTextView.setTextColor(getResources().getColor(R.color.main_dark));

break;

case 1:

mLocalTextView.setTextColor(getResources().getColor(R.color.main_dark));

mSearchTextView.setTextColor(getResources().getColor(R.color.main));

break;

}

}

private void initFragments() {

LocalFragment localFragment = new LocalFragment();

NetSearchFragment netSearchFragment = new NetSearchFragment();

mFragments.add(localFragment);

mFragments.add(netSearchFragment);

}

/**

* 获取音乐播放服务

* @return

*/

public PlayService getPlayService() {

return mPlayService;

}

public void hideIndicator() {

mMainContainer.hideIndicator();

}

public void showIndicator() {

mMainContainer.showIndicator();

}

public void onPopupWindowShown() {

mPopshownView.startAnimation(AnimationUtils.loadAnimation(this, https://www.wendangku.net/doc/c010104950.html,yer_show_anim));

mPopshownView.setVisibility(View.VISIBLE);

}

public void onPopupWindowDismiss() {

mPopshownView.startAnimation(AnimationUtils.loadAnimation(this, https://www.wendangku.net/doc/c010104950.html,yer_gone_anim));

mPopshownView.setVisibility(View.GONE);

}

@Override

public void onPublish(int progress) {

// 如果当前显示的fragment是音乐列表fragment

// 则调用fragment的setProgress设置进度

if(mViewPager.getCurrentItem() == 0) {

((LocalFragment)mFragments.get(0)).setProgress(progress); }

}

@Override

public void onChange(int position) {

// 如果当前显示的fragment是音乐列表fragment

// 则调用fragment的setProgress切换歌曲

if(mViewPager.getCurrentItem() == 0) {

((LocalFragment)mFragments.get(0)).onPlay(position);

}

}

private void onShowMenu() {

onPopupWindowShown();

if(mPopupWindow == null) {

View view = View.inflate(this, https://www.wendangku.net/doc/c010104950.html,yout.exit_pop_layout, null); View shutdown = view.findViewById(https://www.wendangku.net/doc/c010104950.html,_pop_shutdown);

View exit = view.findViewById(https://www.wendangku.net/doc/c010104950.html,_pop_exit);

View cancel = view.findViewById(https://www.wendangku.net/doc/c010104950.html,_pop_cancel);

// 不需要共享变量,所以放这没事

shutdown.setOnClickListener(this);

exit.setOnClickListener(this);

cancel.setOnClickListener(this);

mPopupWindow = new PopupWindow(view,

https://www.wendangku.net/doc/c010104950.html,youtParams.MATCH_PARENT,

https://www.wendangku.net/doc/c010104950.html,youtParams.WRAP_CONTENT, true);

mPopupWindow.setBackgroundDrawable(new

ColorDrawable(Color.TRANSPARENT));

mPopupWindow.setAnimationStyle(R.style.popwin_anim);

mPopupWindow.setFocusable(true);

mPopupWindow.setOnDismissListener(new OnDismissListener() {

@Override

public void onDismiss() {

onPopupWindowDismiss();

}

});

}

mPopupWindow.showAtLocation(getWindow().getDecorView(),

Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case https://www.wendangku.net/doc/c010104950.html,_main_local:

mViewPager.setCurrentItem(0);

break;

case https://www.wendangku.net/doc/c010104950.html,_main_remote:

mViewPager.setCurrentItem(1);

break;

case https://www.wendangku.net/doc/c010104950.html,_pop_exit:

stopService(new Intent(this, PlayService.class));

stopService(new Intent(this, DownloadService.class));

case https://www.wendangku.net/doc/c010104950.html,_pop_shutdown:

finish();

case https://www.wendangku.net/doc/c010104950.html,_pop_cancel:

if(mPopupWindow != null && mPopupWindow.isShowing()) mPopupWindow.dismiss();

onPopupWindowDismiss();

break;

}

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if(keyCode == KeyEvent.KEYCODE_MENU) {

onShowMenu();

return true;

}

return super.onKeyDown(keyCode, event);

}

@Override

protected void onDestroy() {

unregisterReceiver(mScanSDCardReceiver);

super.onDestroy();

}

private BroadcastReceiver mScanSDCardReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) {

L.l(TAG, "mScanSDCardReceiver---->onReceive()");

if(intent.getAction().equals(Intent.ACTION_MEDIA_SCANNER_FINISHED)) {

MusicUtils.initMusicList();

((LocalFragment)mFragments.get(0)).onMusicListChanged();

}

}

};

}

主界面主要是两个Fragment,一个是获取本地歌曲列表,亮一个是获取网络歌曲列表。

获取本地歌曲列表LocalFragment代码如下:

/**

* 2015年8月15日 16:34:37

* 博文地址:https://www.wendangku.net/doc/c010104950.html,/u010156024

*/

public class LocalFragment extends Fragment implements OnClickListener {

private ListView mMusicListView;

private ImageView mMusicIcon;

private TextView mMusicTitle;

private TextView mMusicArtist;

private ImageView mPreImageView;

private ImageView mPlayImageView;

private ImageView mNextImageView;

private SeekBar mMusicProgress;

private MusicListAdapter mMusicListAdapter = new MusicListAdapter();

private MainActivity mActivity;

private boolean isPause;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setRetainInstance(true);

}

@Override

public void onAttach(Activity activity) {

super.onAttach(activity);

mActivity = (MainActivity) activity;

}

@SuppressLint("InflateParams")

@Override

public View onCreateView(LayoutInflater inflater,

ViewGroup container, Bundle savedInstanceState) {

View layout = inflater.inflate(https://www.wendangku.net/doc/c010104950.html,yout.local_music_layout, null); setupViews(layout);

return layout;

}

/**

* view创建完毕回调通知activity绑定歌曲播放服务

*/

@Override

public void onStart() {

super.onStart();

L.l("fragment", "onViewCreated");

mActivity.allowBindService();

@Override

public void onResume() {

super.onResume();

isPause = false;

}

@Override

public void onPause() {

isPause = true;

super.onPause();

}

/**

* stop时,回调通知activity解除绑定歌曲播放服务

*/

@Override

public void onStop() {

super.onStop();

L.l("fragment", "onDestroyView");

mActivity.allowUnbindService();

}

private void setupViews(View layout) {

mMusicListView = (ListView) layout.findViewById(R.id.lv_music_list); mMusicIcon = (ImageView) layout.findViewById(R.id.iv_play_icon);

mMusicTitle = (TextView) layout.findViewById(https://www.wendangku.net/doc/c010104950.html,_play_title);

mMusicArtist = (TextView) layout.findViewById(https://www.wendangku.net/doc/c010104950.html,_play_artist);

mPreImageView = (ImageView) layout.findViewById(R.id.iv_pre);

mPlayImageView = (ImageView) layout.findViewById(R.id.iv_play);

mNextImageView = (ImageView) layout.findViewById(R.id.iv_next);

mMusicProgress = (SeekBar) layout.findViewById(R.id.play_progress);

mMusicListView.setAdapter(mMusicListAdapter);

mMusicListView.setOnItemClickListener(mMusicItemClickListener);

mMusicListView.setOnItemLongClickListener(mItemLongClickListener);

mMusicIcon.setOnClickListener(this);

mPreImageView.setOnClickListener(this);

mPlayImageView.setOnClickListener(this);

mNextImageView.setOnClickListener(this);

private OnItemLongClickListener mItemLongClickListener =

new OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView parent, View view,

int position, long id) {

final int pos = position;

AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setTitle("删除该条目");

builder.setMessage("确认要删除该条目吗?");

builder.setPositiveButton("删除",

new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

Music music = MusicUtils.sMusicList.remove(pos);

mMusicListAdapter.notifyDataSetChanged();

if (new File(music.getUri()).delete()) {

scanSDCard();

}

}

});

builder.setNegativeButton("取消", null);

builder.create().show();

return true;

}

};

private OnItemClickListener mMusicItemClickListener = new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View view, int position, long id) {

play(position);

}

};

/**

* 发送广播,通知系统扫描指定的文件

* 请参考我的博文:

* https://www.wendangku.net/doc/c010104950.html,/u010156024/article/details/47681851

*

*/

private void scanSDCard() {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

// 判断SDK版本是不是4.4或者高于4.4

String[] paths = new String[]{

Environment.getExternalStorageDirectory().toString()}; MediaScannerConnection.scanFile(mActivity, paths, null, null); } else {

Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED);

intent.setClassName("com.android.providers.media",

"com.android.providers.media.MediaScannerReceiver");

intent.setData(Uri.parse("file://"+ MusicUtils.getMusicDir())); mActivity.sendBroadcast(intent);

}

}

/**

* 播放时高亮当前播放条目

* 实现播放的歌曲条目可见,且实现指示标记可见

* @param position

*/

private void onItemPlay(int position) {

// 将ListView列表滑动到播放的歌曲的位置,是播放的歌曲可见

mMusicListView.smoothScrollToPosition(position);

// 获取上次播放的歌曲的position

int prePlayingPosition = mMusicListAdapter.getPlayingPosition();

// 如果上次播放的位置在可视区域内

// 则手动设置invisible

if (prePlayingPosition >= mMusicListView.getFirstVisiblePosition() && prePlayingPosition <= mMusicListView

.getLastVisiblePosition()) {

int preItem = prePlayingPosition

- mMusicListView.getFirstVisiblePosition();

((ViewGroup) mMusicListView.getChildAt(preItem)).getChildAt(0) .setVisibility(View.INVISIBLE);

}

// 设置新的播放位置

mMusicListAdapter.setPlayingPosition(position);

// 如果新的播放位置不在可视区域

// 则直接返回

if (mMusicListView.getLastVisiblePosition() < position

|| mMusicListView.getFirstVisiblePosition() > position)

return;

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

基于Android的音乐播放器设计与实现

基于Android的音乐播放器设计与实现

摘要 在如今这个生活节奏越来越快的社会,科技也随之发展的越来越智能化。而手机的智能化就是其中体现的一个方面,现在市场上比较主流的手机系统就是Android,苹果和w8。Android是一个开源的系统,它底层是基于Linux的操作系统。 本毕业设计的音乐播放器采用了Android开源系统技术,利用Java语言和EclipseJDK编辑工具对音乐播放器进行编写。同时也给出了比较详细的系统设计过程、部分界面图及主要功能运行流程图,本设计还对一些架构的和界面的高度过程中遇到的问题和解决方法进行了详细的讨论,还有一些开发过程中遇到的错误问题进行了举例。该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,有良好的性能,炫酷的播放界面。能在Android 手机系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式(单曲循环,单曲循环,顺序循环,顺序播放,随机播放)、以及歌词开闭状态等比较人性化的设置.该音乐播放器的名称是:“旋风播放器“,名字就和它的风格一样。 关键词:Linux操作系统;Android;流程图;音乐播放器;开源系统

Abstract In this increasingly fast pace of life society, science and technology also will be the development of more and more intelligent. The intelligent phone which reflects one aspect of the market is now more mainstream phone system is Android, Apple and W8. Android is an open source system, it is the underlying Linux-based operating system. The music player of the graduate design uses the Android open source technology, the use the Java language and EclipseJDK of editing tools to write the music player. But also gives a more detailed system design process, part of the interface map and main functions of a flowchart of the operation, the design of a high degree of process architecture and interface problems encountered and solutions are discussed in detail, as well as some development process errors encountered examples. The music player is set to play, pause, stop, previous one, the next song, lyrics display and other functions in one, good performance, cool player interface. Android mobile phone system can run independently. The player also has access to the phone file browser function, song playback mode (single cycle, single cycle, order cycle, the order of play, random play), as well as the opening and closing lyrics state humane set the music the name of the player: "whirlwind player", the name and its style. Key words: Linux operating system; Android; flowchart; music player; open source system

在线音乐播放系统毕业设计(论文)

毕业论文(设计) 题目: 在线音乐播放系统

原创性声明 本人郑重声明:本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。毕业论文中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成果做出重要贡献的个人和集体,均已在文中以明确方式标明。 本声明的法律责任由本人承担。 论文作者签名:日期:

关于毕业论文使用授权的声明 本人在指导老师指导下所完成的论文及相关的资料(包括图纸、试验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属平顶山学院。本人完全了解平顶山学院有关保存、使用毕业论文的规定,同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版,允许论文被查阅和借阅;本人授权平顶山学院可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和汇编本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为平顶山学院。本人离校后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为平顶山学院。 论文作者签名:日期: 指导老师签名:日期:

在线音乐播放系统 摘要 随着大城市建设步伐的加快,越来越多的市民在物质生活条件得到改善的同时,为了调节紧张的生活节奏,把目光投向了工作之余的休闲娱乐上。因此,娱乐市场需求越来越大。而其中,音乐更是休闲娱乐的主流。在各种地方,都总能发现音乐的存在。音乐网站是网络音乐的发展平台,国内各大音乐网站都拥有丰富的音乐资源,并且大部分的资源都可以免费下载,因此吸引了上百万的人成为他们的注册用户。 本次设计我将根据当前流行的Web 动态网页开发技术,使用微软的ASP结合数据库的知识,开发一个在线音乐播放系统。本系统能够实现音乐的分类查询,歌曲的在线播放以及后台的添加、删除和修改功能。本文主要对这次设计的各模块设计和数据库的建立进行介绍。全文分六大部分,首先介绍了音乐网站的分类和音乐网站的现状,然后对网站系统进行了调研和可行性分析,接下来阐述了系统分析、设计与实现的过程,最后小结了网站的测试结果。该网站功能较强大,结构清晰明了、界面友好。前台可以浏览歌曲信息、音乐在线收听、音乐下载、即时留言、论坛交流,满足了用户对于音乐网站的基本需求。 通过这次作品的制作,学习了在制作网页的基础上,加入数据库、ASP及相关的嵌入式技术来实现在线音乐播放的目的,在一定程度上加深了对这些知识的应用和熟悉程度,使我对这些内容的学习得到了进一步的巩固。 关键词: 休闲娱乐,音乐,网站,ASP,留言,在线收听,下载

基于Android的多功能视频播放器的系统设计

文档编号:基于Android的多功能视频播放器 系统设计说明书 目录 1引言 4 1.1目的 4 1.2适用范围 4 2系统架构 5 2.1硬件架构 5 2.2软件架构 9 3完整功能结构图 11 4系统数据库设计 11 4.1 E-R图设计 11 4.2字段设计 11 4.2.1本地视频文件记录表 11

4.2.2历史播放文件表 12 4.2.3 收藏文件表 12 5视频播放器部署图 13 6 系统需求 13 6.1系统界面需求 13 6.2系统性能需求 13 6.1系统开发环境需求 14 7视频播放器流程图 14 1引言 1.1目的 本文档是多通道同步数字记录仪升级换代项目的系统设计文档。从系统的高层角度对系统的硬件架构、软件架构、网络架构、系统部署、系统运行方式进行设计,为下一步各个模块的详细设计提供系统级的视图。 1.2适用范围 本文用于描述多通道同步数字记录仪升级换代项目的系统设计,给出系统的主要架构与配置项,对相关运行、数据、用户接口、容错与复用和重要模块进行分

析,作为项目后续详细设计与开发实现的依据。本说明书的阅读对象为:跟我们同龄的有一定基础的大学生,以及相关的项目开发人员等等。 2系统架构 2.1硬件架构 2.1.1 JDK安装 JDK是Java语言的原创者推出的原始开发环境。采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。在Windows上安装JDK非常简单,访问Oracle官方网站下载页面,网址为,也可从其他网站下载。下载完成后,双击运行JDK安装程序并根据提示设定环境变量。 2.1.2 Android SDK安装以及系统设置 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,默认SDK安装目录为$SDK_ROOT 。 ● Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH 变量的行,可以自己添加一行: export PATH=${PATH}:<$SDK_ROOT/tools的完全路径> ● Mac下,在home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,可以创建一个.bash_profile文件。 ● Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

音乐播放器前十排行

音乐播放器前十排行 1、QQ音乐 QQ音乐是腾讯公司推出的网络音乐平台,是中国互联网领域领先的正版数字音乐服务的领先平台,海量乐库在线试听、卡拉ok歌词模式、最流行新歌在线首发等,绿钻用户还可享受高品质音乐试听、正版音乐下载、MV观看等特权。 QQ音乐目前是国内音乐APP的绝对龙头,2016年底其曲库已经超过2000万首,旗下拥有的版权也是音乐APP中的第一,如索尼、华纳、杰尔威、英皇、韩国YG等,其市场份额也超过50%。虽然总有人吐槽QQ音乐,但是十大音乐APP排行榜第一位毫无悬念。在此前评选的全球音乐流服务排行榜,QQ音乐排名第四。 2、虾米音乐 虾米音乐版权建设虽然起步较晚,歌曲量在整体版权音乐中的比例低于20%,但在华语资源上仍具有一定优势。你想要听到华研唱片下的林宥嘉、S.H.E和田馥甄、相信音乐的五月天、梁静茹以及聚集了李宗盛、周华健等人的滚石,还是要投入虾米音乐的怀抱。而且虾米也在去年取得了韩国SM公司的音乐版权,这在国内来说,争取到了很大一部分的韩粉。虽然无法对QQ音乐造成威胁但依旧稳居十大音乐APP排行榜第二。 3、网易云音乐 网易云音乐不用再过多介绍了,近两年大火的音乐APP,口碑爆棚,市场份额目前也达到15%,局国内第二仅次于QQ音域。为何口碑份额双丰收的网易云音乐仅列十大音乐APP排行榜第三?网易云音乐的版权数量实在太少,并且官方也并不太重视版权的购买,虽然网易云音乐的版权音乐歌曲量占整体版权音乐的70%左右,但非常有意思的是大部分的版权都是通过转授权获得的。

4、酷狗音乐 酷狗音乐是一款集中播放、音乐效果、在线下载歌词等众多功能于一身,完全免费的手机音乐播放器。酷狗算是老牌音乐APP了, 但此前酷狗和酷我同QQ音乐一起加入新音乐集团,三大音乐APP曲 库资源基本互通,而且音乐伴奏资源众多也是酷狗的一大优势,喜 欢唱歌的人通常都是用酷狗搜索放伴奏唱歌、录歌。 不过酷狗的音质是劣势,对于耳朵挑剔的乐迷,对音质要求高的人来说很难满足。 5、咪咕音乐 咪咕音乐是一款面向所有用户的手机音乐APP,它包含了在线听歌、下载歌曲、订购彩铃以及开通会员等功能和业务,用户通过咪 咕音乐可以第一时间聆听中国移动无线首发的最新音乐,感觉最热 最流行歌曲,实时了解最新音乐咨讯及娱乐新闻,并可通过软件行 使无线音乐俱乐部会员权益。目前该软件已经覆盖市面上高中低端 主流机型,无论你是何种手机,均可轻松安装和使用。 6、酷我音乐 酷我音乐是中国数字音乐的交互服务品牌,是互联网领域的数字音乐服务平台,同时也是一款内容全、聆听快和界面炫的音乐聚合 播放器,是国内的多种音乐资源聚合的播放软件。自平台成立以来,酷我音乐作为前端潮流音乐的重要推手,率先与唱片公司、版权管 理机构合作探索发展,免费向广大用户提供方便流畅的在线音乐, 还有免费无损音乐方便用户的试听和下载,生成了丰富的音乐流媒 体生态系统。 7、天天动听 天天动听是一款功能强大、完全免费的手机音乐播放软件,支持歌词和歌曲图片下载,简洁人性化的操作,带来手机听歌的全新体验,是拇指一族必备的音乐播放工具。 8、百度音乐

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

在线音乐设计说明

课程设计说明 设计题目:基于asp技术的 在线音乐播放系统 学院派斯学院 专业年级计算机应用技术 学生姓名陈琴学号 20080908111 指导教师程光德(老师) 设计地点重庆工商大学派斯学院 日期2010年5月10日

在线音乐播放系统 [摘要]随着计算机技术和多媒体技术的发展,以及Internet互联网的普及,人们不再满足于只有图片,文字的网站,流媒体技术使得在线音乐播放,在线视频播放成为可能,下面我将介绍一个在线音乐播放系统的实现过程,该系统能在线播放多种格式的音乐文件,并具有文件管理等功能。 [关键字] 音乐;播放;数据库 [Abstract] By the development of computer technique, online music player system has become a hot topic.people don’t content with the web that only have images and word.the realmultmedia become that online music player is possible. [Keyword] online ; music ; Database 1.引言 Internet互联网的普及,人们不再满足于只有图片,文字的网站,流媒体技术使得在线音乐播放,在线视频播放成为可能 2.需求分析 2.1系统需求 本套系统的在线音乐播放系统,并可推广至各社会各地使用。在系统开发上,我们选取的工具是asp ,数据库采用Microsoft ACCESS 2000 2.2功能需求 ①在线音乐播放。②管理员对音乐进行分类,添加,删除等功能。 1系统功能说明 一个在线音播放系统应该具有以下主要功能: ①将歌曲进行分类,并能够按照用户的选择显示某个类别的所有歌曲。 ②多种注媒体格式的音乐文件的在线播放。 ③歌曲文件的管理,包括添加,修改和删除曲目。 ④一个在线音乐播放系统的运行流程如下图如示

WX小程序开发在线音乐播放器的设计与实现

WX小程序开发在线音乐播放器的设计与实现 摘要:随着社会的信息技术的发展,越来越多的人使用WX,在2017年1月才出现在人们WX 里的小程序,近来是越来越火爆,好多拥有APP客户端的商家都已做好关于自己APP的WX小程序以用来方便客户的使用。因为WX小程序是一种快捷方式,不用下载,直接使用,不占用手机内存的一款快捷式小程序。我要做的是一款WX在线音乐播放器,其播放器有搜索页面,音乐排行榜,歌曲列表等等功能。在WX公众号上注册WX小程序,再在WX小程序里下载WX小程序开发工具,然后利用JavaScript语言编写。WX小程序在线音乐播放器的作用是:为了让喜欢听音乐的人免于下载音乐APP,直接在WX小程序上就可以听自己喜欢听的音乐。 关键词:小程序;音乐;WX Abstract :With the development of information technology, more and more people use WeChat. Besides, the small program of WeChat has been more and more popular, which be applied in January 2017. many stores using APP are ready on the small program of WeChat APP for the convenience of customers. The small program has a lot of advantages, such as: no download, direct use, do not occupy the mobile memory of a shortcut program. I am aiming at develop a WeChat online music player with the functions of a search page, a music list, a list of songs, and so on. The process of using: Firstly, the WeChat small program is registered on the WeChat public number, and then the WeChat small program development tool is downloaded in the WeChat small program. Finally, it is written in the JavaScript language. The role of WeChat small program online music player is let the people who listen to music avoid being downloaded music APP, and they can listen to music that they like directly on WeChat applet. Key words: Small programs; Music; WeChat

在线音乐播放系统详细设计

<在线音乐播放系统> 详细设计说明书 作者: 完成日期: 签收人: 签收日期: 修改情况记录:

1 引言 1.1 编写目的 为软件开发人员在编码的过程中有所依据和参考。 面向人员:程序开发人员 1.2 背景 说明: a.待开发的软件系统的名称:在线音乐播放系统 b.列出本项目的任务提出者:北软老师 c.开发者:邓凯 d.用户:广大互联网用户 e.将运行该项软件的单位:web服务器 1.3 定义 OMS :Online music system,在线音乐播放系统。 1.4 参考资料 列出要用到的参考资料,如: a.本项目的经核准的计划任务书或合同、上级机关的批文; b.在线音乐播放系统概要设计.doc; c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2 程序系统的结构 本程序主要采用四层结构,如下所示: 图1 系统结构示意图

3 程序(标识符)设计说明 3.1 在线音乐网络爬虫设计说明: 资源的数量和质量将决定了系统的商业价值,为了获取更多的网络媒体资源,为系统设计了一款针对互联网上音乐资源的网络爬虫。 3.1.1爬虫的原理: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1)对抓取目标的描述或定义; (2)对网页或数据的分析与过滤; (3)对URL的搜索策略。 3.1.2在线音乐播放系统爬虫的设计: 与通用爬虫不同,在线音乐播放系统爬虫只针对https://www.wendangku.net/doc/c010104950.html,音乐频道 https://www.wendangku.net/doc/c010104950.html,音乐频道,针对MP3格式的资源。 3.1.3爬虫的流程图:

Android视频上传与播放的设计与实现

毕业设计 题目:基于Android的校园信息移动平台的 设计

摘要 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机能够随时随地地查询互联网所提供的服务,一种高效的方法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网络以及互联网访问相关资源信息。因此,智能手机应用软件及其需要的服务将有广阔的发展前景。 本课题为其设计一个基于Android在线学习系统,为用户提供一个可以用于在线播放视频、视频评论和收藏的APP应用,丰富用户娱乐生活,提高生活情趣。 本论文首先介绍系统的开发背景和意义,接着详细介绍系统设计以及实现的过程,最后介绍了系统测试和本软件的测试用例以及总结了本次毕业设计整个过程。 关键词:Android 、智能系统、在线课堂、手机软件

ABSTRACT With the rapid proliferation of smart phones, smart phone operating system market burgeoned. In order to make smart phones can check the Internet anytime, anywhere service provided, an efficient method is to expand the application system functions to the mobile terminal, allowing the phone to access information via the mobile network resources and the Internet. Therefore, smart phone applications and services they need to have broad prospects for development. Based on this study to design an Android video player that can be used to provide users with an online video, video reviews and collections of APP applications, rich user entertainment life, improve zest for life. This paper introduces the background and significance of the development of the system, followed by detailed system design and implementation process, and finally introduced the system testing and test this software and summarizes the whole process of this graduation project. Keywords: Android, intelligent systems, player, mobile phone software

安卓手机音乐播放器哪个好

安卓手机音乐播放器哪个好?泡椒凌少告诉你 来源:泡椒网作者:泡椒凌少 2011-05-30 18:54 我要评论(7) 用手机收听音乐,是很多手机用户空暇时的主要爱好之一。一款功能强大的手机音乐播放器是很多爱好听音乐的手机用户的追求。现如今,就安卓平台而言,就有数款不论在口碑还是在功能上都非常给力的手机音乐播放器。但是,它们中到底谁的功能最全面、实用性最强呢?今天,泡椒小编凌少我就带大家去看看,到底谁才是安卓手机软件平台最强大的手机应用播放器。 评测对象:[Uu3D xKp9EJ]、多米音乐、酷我听听、天天动听 评测手机:MOTO 里程碑1代 手机平台:Android 2.2 使用网络:无线WIFI 评分标准:优秀5泡椒、良好4泡椒、普通3泡椒、差劲2泡椒、极差1泡椒

小编我是在泡椒网上下载的QQ音乐、多米音乐、酷我听听、天天动听这4款安卓手机音乐播放器的最新版本,亲测绿色无毒,安全可用。凌少我会以第三方的心态,公平、公正的对这4款手机音乐播放器进行横评比较。 “外貌”大比拼(一) 任何事物,给人最直观的印象就是它的外貌,当然,手机音乐播放器也不会例外。对于手机软件来说,外貌包括了3个方面:手机图标LOGO、欢迎页面与功能页面。这3个方面,决定了用户对于一款手机软件的第一印象。因此,第一回合的横评,我们就从“外貌”开始。 首先,手机图标LOGO比较:

【LOGO】-4款手机音乐播放器的LOGO 就手机图标LOGO而言,安卓这4款手机音乐播放器在风格和设计上都非常精美、各具特色。小编实在分不出好坏。因此,手机图标LOGO评分结果如下: QQ音乐: 多米音乐: 天天动听: 酷我听听: “外貌”大比拼(二) 基本上每一款手机软件,都会有其特有的欢迎页面。用户在点开手机图标之后,最先看到的便是这些形形色色的欢迎页面。一款好的欢迎页面,可以让用户看着舒心,从而对这款手机软件充满好感,其重要性不言而喻。好,接下来,我们来看看QQ音乐、多米音乐、酷我听听、天天动听这4款安卓手机音乐播放器的欢迎页面吧。

基于android平台的音乐播放器的设计与实现

嵌入式系统综合设计说明书 题 目:基于Android 的音乐播放器设计与实现 姓 名: 学 院:信息工程学院 班 级: 指导教师: 2012 年9 月24 日

摘要 Android是一种以Linux为基础的开放源代码操作系统,本文就android平台下设计和实现音乐播放器,利用java语言和Eclipse编程工具实现。通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、帮助菜单等功能,通过对基于android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了android编程思想以及基本的应用组件,对以后从事android开发有很大的帮助。 关键词:android;音乐播放器;嵌入式;java

Abstract Android is a Linux-based open-source operating system, this article on the android platform design and realization of the music player, the use of the Java language and the Eclipse programming tools. Can be achieved through the design of the music playback, pause, previous song, next song, music list, sound control, the Help menu and other functions through the principle player in android platform-based design, and to understand the design of the music player realization of the related technology, to master the android programming ideas, as well as basic application components, great help later in the android development. Keywords: android; music player; embedded; java

基于Android的视频通话系统的设计与实现毕业设计论文

东北大学毕业设计(论文)摘要基于Android的视频通话系统的设计与实现 摘要 近年来,智能手机操作系统发展迅速,尤其是Android系统的迅猛发展已经将全球智能手机市场引领到了非常火爆的状态。随着手机社交网络、手机多媒体通信和手机游戏等应用程序不断被开发出来,各种基于智能手机操作系统的应用程序正在逐渐影响和改变人们的生活方式。实时视频流技术在可视电话、远程教育、视频点播等方面得到了广泛的应用。 本文设计并实现的基于Android的视频通话系统采用C/S架构,包括PC和手机两个客户端。手机端使用Android2.3操作系统。本系统共包含四个子系统:PC端接收子系统、发送子系统,Android端接收子系统、发送子系统。接收子系统实现数据接收、转码和呈现,发送子系统现实数据采集、编码压缩和数据发送。PC端基于JMF框架来实现,Android端使用Android Camera类及其相关类来实现。本文对国内外视频通话的研究情况以及今后的发展前景,对实现视频通话所涉及到的协议和相关技术进行了分析,在此基础上提出了一种可行的网络视频通话设计方案,并通过需求分析、详细设计、编码实现、单元测试以及集成测试等过程完成了本系统的设计与实现。 本系统实现了跨平台视频通话,使PC与Android之间的视频通话成为了可能,可以起到丰富人们日常生活交流和娱乐方式的作用。 关键词:Android,视频通话,JMF,PC,RTP/RTCP

Design and Implementation of an Android-Based Video Calling System Abstract In recent years, the rapid development of smart phone operating system, especially Android system, has led the global smart phone market into explosion state. With some application such as mobile social networking, mobile media communications and mobile games being continually developed, a variety of application on smart phone operation systems are increasingly affecting and changing people’s lifestyles. The real-time video streams technology is used widely in such aspects as videophone, distance education and video on demand. The system based on android uses c/s architecture. It includes two clients. One is on the Windows system, the other one is on the Android 2.3 system. There are four subsystems. Each of clients has a send subsystem and a receiver subsystem. The main function of the receiver subsystem is to receiver data from internet and decodes that data. After that, it will display that data as soon as possible. The main function of the send subsystem is to collect data from camera and then encodes the data. After that, the data will be sanded to the Internet. On the PC client, we use the JMF framework. One the Android client, we use Android API. This paper firstly introduces the research condition of the video call and development tendency. It analysis some technologies about the video calling system and comes up with a feasible plan. It introduces the video calling system about requirement analysis, detailed design, realize and testing. This system achieves the cross-platform video calling. It becomes possible to make video calling between PC and Android and will enrich the people’s communication and entertainment in their daily lives. Key words: Android, video call, JMF, PC, RTP/RTCP

基于Android音乐播放器的设计与实现

滨江学院 《移动通信程序设计》 课程设计 题目基于Android系统的音乐播放器 院系滨江学院 专业计算机科学与技术 学生姓名王兵 学号 二O一四年六月十日

摘要 随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 目录 1前言........................................................... 1.1选题的背景及意义............................................. 1.2网络流行音乐播放器简介....................................... 2系统相关技术及开发平台介绍 ..................................... 2.1开发应用技术介绍............................................. 2.2开发及运行坏境............................................... 3系统的分析..................................................... 3.1可行性分析................................................... 3.2常见的几种音频格式及其特点................................... 3.3需求分析..................................................... 4系统设计....................................................... 4.1系统概要设计................................................. 4.2系统功能设计及描述........................................... 5系统功能实现................................................... 5.1歌曲添加模块................................................. 5.2歌曲列表模块................................................. 5.3播放控制模块................................................. 5.4音量控制模块................................................. 5.5进度控制模块................................................. 5.6滚动字幕模块................................................. 5.7歌曲下载模块................................................. 5.8歌曲剪辑模块................................................. 结论............................................................ 参考文献.......................................................

相关文档
相关文档 最新文档