
我是Android的新手,我试图制作一个非常简单的应用程序.它只是一个包含用于播放音频或视频文件的MediaPlayer的活动.
我设法播放了一首歌,但它不会向我展示媒体播放器的控制元素!
这是我使用的代码:
`public class Player extends Activity实现OnPreparedListener,
MediaPlayerControl {
private static final String TAG = "AudioPlayer";public static final String AUdio_file_name = "audiofilename";private String audiofile;private MediaPlayer mediaPlayer;private Handler handler = new Handler();private MediaController mediaController;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_player); Uri myUri = Uri.parse("androID.resource://com.example.mediaplayer/" + R.raw.lIEd); // initialize Uri here MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaController = new MediaController(this); try { mediaPlayer.setDataSource(getApplicationContext(), myUri); } catch (IllegalArgumentException e) { // Todo auto-generated catch block e.printstacktrace(); } catch (SecurityException e) { // Todo auto-generated catch block e.printstacktrace(); } catch (IllegalStateException e) { // Todo auto-generated catch block e.printstacktrace(); } catch (IOException e) { // Todo auto-generated catch block e.printstacktrace(); } try { mediaPlayer.prepare(); } catch (IllegalStateException e) { // Todo auto-generated catch block e.printstacktrace(); } catch (IOException e) { // Todo auto-generated catch block e.printstacktrace(); } mediaPlayer.start();}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.player, menu); return true;}public voID onPrepared(MediaPlayer mediaPlayer) { Log.d(TAG, "onPrepared"); mediaController.setMediaPlayer(this); mediaController.setAnchorVIEw(findVIEwByID(R.ID.mediaController1)); handler.post(new Runnable() { public voID run() { mediaController.setEnabled(true); mediaController.show(); } });}protected voID onStop() { super.onStop(); mediaPlayer.stop(); mediaPlayer.release();}public boolean ontouchEvent(MotionEvent event) { // the MediaController will hIDe after 3 seconds - tap the screen to // make it appear again mediaController.show(); return false;}public boolean canPause() { return true;}public boolean canSeekBackward() { return true;}public boolean canSeekForward() { return true;}public int getBufferPercentage() { return 0;}public int getCurrentposition() { return mediaPlayer.getCurrentposition();}public int getDuration() { return mediaPlayer.getDuration();}public boolean isPlaying() { return mediaPlayer.isPlaying();}public voID pause() { mediaPlayer.pause();}public voID seekTo(int i) { mediaPlayer.seekTo(i);}public voID start() { mediaPlayer.start();}}`
这是我的布局xml:
`
<MediaController androID:ID="@+ID/mediaController1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_alignParentleft="true" androID:layout_alignParenttop="true" androID:layout_marginleft="122dp" androID:layout_margintop="55dp" androID:visibility="visible" ></MediaController><VIDeoVIEw androID:ID="@+ID/vIDeoVIEw1" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_alignParentleft="true" androID:layout_alignParenttop="true" />`
希望你能帮我 :-/
解决方法:
我认为你所寻找的是AndroID中的视频.播放媒体时有默认控件.
在xml布局文件夹中创建一个vIDeovIEw,如下所示:
<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content"><VIDeoVIEw androID:ID="@+ID/myvIDeovIEw" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" /></linearLayout>假设您调用了该文件main.xml
现在创建一个名为MediaVIEwerTest.java的活动,如下所示:
public class MediaVIEwerTest extends Activity {String SrcPath = http://myMediafile.mp3"; // or however your getting your media source, im assuming web here @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); VIDeoVIEw myVIDeoVIEw = (VIDeoVIEw)findVIEwByID(R.ID.myvIDeovIEw); myVIDeoVIEw.setVIDeoURI(Uri.parse(SrcPath)); myVIDeoVIEw.setMediaController(new MediaController(this)); myVIDeoVIEw.requestFocus(); myVIDeoVIEw.start(); }} 总结 以上是内存溢出为你收集整理的android – 媒体播放器中没有控制按钮显示全部内容,希望文章能够帮你解决android – 媒体播放器中没有控制按钮显示所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)