- 浏览: 228937 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
yandol:
ACTION_PAIRING_REQUES找不到,强行用了也无 ...
android 蓝牙 配对 取消pin 配对 转 -
zhenglingkun:
学习了!赞一个!
android 动画 -
renzhe20092584:
哥们 求 源码啊 谢谢了
android dialog 完美播放视频 大小 位置 透明 无边框 (原创) -
wcj343169893:
要是再附上一个例子,就完美了
跨语言之间的socket通信(C--Java的握手) -
veallytong:
只知道说,有没有看到完全做,有毛用阿
android 蓝牙 配对 取消pin 配对 转
使用使用MediaPlayer播放音频或者视频的最简单例子:
JAVA代码部分:
view plaincopy to clipboardprint?
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
布局文件main.xml:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
程序说明:
这个例子只是描述了MediaPlayer的基本使用步骤和方式,MediaPlayer还有多种使用方式和方法,并不只局限于例子所介绍的一种。具体来看:
1)如何获得MediaPlayer实例:
可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了
2) 如何设置要播放的文件:
MediaPlayer要播放的文件主要包括3个来源:
a. 用户在应用中事先自带的resource资源
例如:MediaPlayer.create(this, R.raw.test);
b. 存储在SD卡或其他文件路径下的媒体文件
例如:mp.setDataSource("/sdcard/test.mp3");
c. 网络上的媒体文件
例如:mp.setDataSource("http://www.citynorth.cn/music/confucius.mp3");
MediaPlayer的setDataSource一共四个方法:
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)
3)对播放器的主要控制方法:
Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
start()是真正启动文件播放的方法,
pause()和stop()比较简单,起到暂停和停止播放的作用,
seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。
release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。
reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。
4)设置播放器的监听器:
MediaPlayer提供了一些设置不同监听器的方法来更好地对播放器的工作状态进行监听,以期及时处理各种情况,
如: setOnCompletionListener(MediaPlayer.OnCompletionListener listener)、
setOnErrorListener(MediaPlayer.OnErrorListener listener)等,设置播放器时需要考虑到播放器可能出现的情况设置好监听和处理逻辑,以保持播放器的健壮性。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghome/archive/2010/06/16/5673285.aspx播放音频或者视频的最简单例子:
JAVA代码部分:
view plaincopy to clipboardprint?
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
布局文件main.xml:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
程序说明:
这个例子只是描述了MediaPlayer的基本使用步骤和方式,MediaPlayer还有多种使用方式和方法,并不只局限于例子所介绍的一种。具体来看:
1)如何获得MediaPlayer实例:
可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了
2) 如何设置要播放的文件:
MediaPlayer要播放的文件主要包括3个来源:
a. 用户在应用中事先自带的resource资源
例如:MediaPlayer.create(this, R.raw.test);
b. 存储在SD卡或其他文件路径下的媒体文件
例如:mp.setDataSource("/sdcard/test.mp3");
c. 网络上的媒体文件
例如:mp.setDataSource("http://www.citynorth.cn/music/confucius.mp3");
MediaPlayer的setDataSource一共四个方法:
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)
3)对播放器的主要控制方法:
Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
start()是真正启动文件播放的方法,
pause()和stop()比较简单,起到暂停和停止播放的作用,
seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。
release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。
reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。
4)设置播放器的监听器:
MediaPlayer提供了一些设置不同监听器的方法来更好地对播放器的工作状态进行监听,以期及时处理各种情况,
如: setOnCompletionListener(MediaPlayer.OnCompletionListener listener)、
setOnErrorListener(MediaPlayer.OnErrorListener listener)等,设置播放器时需要考虑到播放器可能出现的情况设置好监听和处理逻辑,以保持播放器的健壮性。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghome/archive/2010/06/16/5673285.aspx
JAVA代码部分:
view plaincopy to clipboardprint?
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
布局文件main.xml:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
程序说明:
这个例子只是描述了MediaPlayer的基本使用步骤和方式,MediaPlayer还有多种使用方式和方法,并不只局限于例子所介绍的一种。具体来看:
1)如何获得MediaPlayer实例:
可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了
2) 如何设置要播放的文件:
MediaPlayer要播放的文件主要包括3个来源:
a. 用户在应用中事先自带的resource资源
例如:MediaPlayer.create(this, R.raw.test);
b. 存储在SD卡或其他文件路径下的媒体文件
例如:mp.setDataSource("/sdcard/test.mp3");
c. 网络上的媒体文件
例如:mp.setDataSource("http://www.citynorth.cn/music/confucius.mp3");
MediaPlayer的setDataSource一共四个方法:
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)
3)对播放器的主要控制方法:
Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
start()是真正启动文件播放的方法,
pause()和stop()比较简单,起到暂停和停止播放的作用,
seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。
release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。
reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。
4)设置播放器的监听器:
MediaPlayer提供了一些设置不同监听器的方法来更好地对播放器的工作状态进行监听,以期及时处理各种情况,
如: setOnCompletionListener(MediaPlayer.OnCompletionListener listener)、
setOnErrorListener(MediaPlayer.OnErrorListener listener)等,设置播放器时需要考虑到播放器可能出现的情况设置好监听和处理逻辑,以保持播放器的健壮性。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghome/archive/2010/06/16/5673285.aspx播放音频或者视频的最简单例子:
JAVA代码部分:
view plaincopy to clipboardprint?
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
public class MediaPlayerStudy extends Activity {
private Button bplay,bpause,bstop;
private MediaPlayer mp = new MediaPlayer();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bplay = (Button)findViewById(R.id.play);
bpause = (Button)findViewById(R.id.pause);
bstop = (Button)findViewById(R.id.stop);
bplay.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
mp.setDataSource("/sdcard/test.mp3");
mp.prepare();
mp.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
});
bpause.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.pause();
}
}
});
bstop.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
if(mp != null){
mp.stop();
}
}
});
}
@Override
protected void onDestroy() {
if(mp != null)
mp.release();
super.onDestroy();
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ddna/archive/2010/01/11/5176233.aspx
布局文件main.xml:
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<Button android:text="play" android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="pause" android:id="@+id/pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button android:text="stop" android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</LinearLayout>
程序说明:
这个例子只是描述了MediaPlayer的基本使用步骤和方式,MediaPlayer还有多种使用方式和方法,并不只局限于例子所介绍的一种。具体来看:
1)如何获得MediaPlayer实例:
可以使用直接new的方式:
MediaPlayer mp = new MediaPlayer();
也可以使用create的方式,如:
MediaPlayer mp = MediaPlayer.create(this, R.raw.test);//这时就不用调用setDataSource了
2) 如何设置要播放的文件:
MediaPlayer要播放的文件主要包括3个来源:
a. 用户在应用中事先自带的resource资源
例如:MediaPlayer.create(this, R.raw.test);
b. 存储在SD卡或其他文件路径下的媒体文件
例如:mp.setDataSource("/sdcard/test.mp3");
c. 网络上的媒体文件
例如:mp.setDataSource("http://www.citynorth.cn/music/confucius.mp3");
MediaPlayer的setDataSource一共四个方法:
setDataSource (String path)
setDataSource (FileDescriptor fd)
setDataSource (Context context, Uri uri)
setDataSource (FileDescriptor fd, long offset, long length)
3)对播放器的主要控制方法:
Android通过控制播放器的状态的方式来控制媒体文件的播放,其中:
prepare()和prepareAsync() 提供了同步和异步两种方式设置播放器进入prepare状态,需要注意的是,如果MediaPlayer实例是由create方法创建的,那么第一次启动播放前不需要再调用prepare()了,因为create方法里已经调用过了。
start()是真正启动文件播放的方法,
pause()和stop()比较简单,起到暂停和停止播放的作用,
seekTo()是定位方法,可以让播放器从指定的位置开始播放,需要注意的是该方法是个异步方法,也就是说该方法返回时并不意味着定位完成,尤其是播放的网络文件,真正定位完成时会触发OnSeekComplete.onSeekComplete(),如果需要是可以调用setOnSeekCompleteListener(OnSeekCompleteListener)设置监听器来处理的。
release()可以释放播放器占用的资源,一旦确定不再使用播放器时应当尽早调用它释放资源。
reset()可以使播放器从Error状态中恢复过来,重新会到Idle状态。
4)设置播放器的监听器:
MediaPlayer提供了一些设置不同监听器的方法来更好地对播放器的工作状态进行监听,以期及时处理各种情况,
如: setOnCompletionListener(MediaPlayer.OnCompletionListener listener)、
setOnErrorListener(MediaPlayer.OnErrorListener listener)等,设置播放器时需要考虑到播放器可能出现的情况设置好监听和处理逻辑,以保持播放器的健壮性。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghome/archive/2010/06/16/5673285.aspx
相关推荐
本篇将深入讲解如何使用`MediaPlayer`来实现音频播放,并通过示例代码帮助理解其工作原理。 `MediaPlayer`是一个强大的音频播放器,它可以播放本地文件、网络流媒体、甚至是Android资源文件(如R.raw中的音频)。...
Android 中的 MediaPlayer 是一个功能强大且复杂的媒体播放器,可以播放音频和视频文件。在 Android 的界面上,Music 和 Video 两个应用程序都是调用 MediaPlayer 实现的。MediaPlayer 在底层是基于 OpenCore...
在我们的例子中,"简单的视频播放例子"可能是用少量代码就实现了加载和播放视频的功能。 要使用`VideoView`,首先需要在布局文件中声明它,如下所示: ```xml android:id="@+id/videoView" android:layout_...
3. **性能优化**:对于长音频或大量音频,考虑使用`MediaPlayer`代替`SoundPool`,因为`MediaPlayer`更适合处理大文件和音乐播放。 4. **音效混合**:`SoundPool`能处理多个音频的混合,但无法实现音频之间的淡入...
在准备好后,通过调用start()方法开始播放视频。播放过程中,可以通过控制Mediaplayer的pause()和resume()方法实现暂停与恢复播放。若需停止播放并释放资源,应调用stop()和release()方法。 Android中的VideoView或...
而 MMSystem 则相对简单,适用于基本的音频播放任务,它是 Windows SDK 中的一部分,易于理解和使用。 Delphi 中播放声音通常会用到 `mmSystem` 单元,这个单元提供了 TMediaPlayer、TWaveOut 和 TAudioOut 等组件...
"qt/qml MediaPlayerDemo"项目是一个很好的起点,它展示了如何从零开始构建一个简单的Qt工程来播放视频文件。 首先,让我们了解QML。QML是Qt Quick的一种声明式语言,用于构建具有直观、动态用户界面的应用程序。它...
使用MediaPlayer播放音频或者视频的最简单例子: Java代码部分: public class MediaPlayerStudy extends Activity { private Button bplay,bpause,bstop; private MediaPlayer mp = new MediaPlayer(); @...
MediaPlayer可能使用DirectX中的DirectShow组件来处理视频和音频流。DirectShow负责媒体数据的捕获、处理、解码和播放,提供了高效的硬件加速功能。 3. **解码与渲染**:MediaPlayer通过DirectShow的Filter Graph...
这个方法适用于各种Android项目,目标是成为Android平台上最简便、最广泛使用的视频播放解决方案。 首先,我们要引入关键的库,Android系统自带的`MediaPlayer`类是基础的音频和视频播放工具,但为了实现更高级的...
以下是一个简单的使用TMediaPlayer的例子: ```delphi unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl....
在`onCreate()`方法中,我们创建了一个`MediaPlayer`对象,它是Android提供的用于播放音频和视频的类。`MediaPlayer`对象负责加载音乐文件,并提供了播放、暂停、停止等操作的方法。 为了响应用户操作,我们需要在...
使用MediaPlayer播放MP3的例子如下: ```csharp using System.Windows.Media.Audio; MediaPlayer player = new MediaPlayer(); player.Open(new Uri("music.mp3")); player.Play(); ``` 如果使用NAudio,流程会...
例如,我们可以通过HttpURLConnection或OkHttp库实现网络请求,通过SQLite数据库管理本地数据,通过MediaPlayer类播放音频和视频。 服务(Service)是Android中一种在后台运行的组件,常用于执行长时间的任务,如...
VLCPlayer是一个基于Java开发的简单视频播放器应用,它利用了开源的LibVLC库来实现视频播放功能。LibVLC是一个强大的跨平台多媒体库,由VideoLAN项目开发,支持各种媒体格式和流协议,使得开发者能够轻松地在他们的...
在Android平台上,MediaPlay是系统提供的一个核心组件,用于播放音频和视频文件。MediaPlay API设计简洁,功能强大,能够支持多种媒体格式,包括本地文件和网络流媒体。本示例是一个基于原生Mediaplay的简单应用,...
火山安卓自带的系统播放器通常是基于Android的MediaPlayer类或者其他更高效的实现,如ExoPlayer,它支持多种音频和视频格式的播放。在安卓应用开发中,媒体播放功能是非常常见且重要的,包括播放本地存储的媒体文件...
MediaPlayer控件是Windows Forms应用程序中用于播放音频和视频的组件。下面就是这两句代码的核心: ```csharp MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.Open(new Uri("path_to_media_file")); ...
此外,对于播放视频的部分,可能涉及到了`MediaPlayer`或`ExoPlayer`等播放器的使用。`MediaPlayer`是Android系统自带的音频和视频播放组件,而`ExoPlayer`是Google推荐的高性能媒体播放器,适用于更复杂的场景。...