android– 媒体播放器中没有控制按钮显示

android– 媒体播放器中没有控制按钮显示,第1张

概述我是Android的新手,我试图制作一个非常简单的应用程序.它只是一个包含用于播放音频或视频文件的MediaPlayer的活动.我设法播放了一首歌,但它不会向我展示媒体播放器的控制元素!这是我使用的代码:`publicclassPlayerextendsActivity实现OnPreparedListener,        Med

我是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 – 媒体播放器中没有控制按钮显示所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1117823.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存