android - RTSP 安卓媒体播放器

标签 android android-layout android-intent android-emulator android-widget

我正在尝试为 Android 创建一个 RTSP 播放器,但出现无法播放视频的错误消息。我不知道我犯了什么错误,这根本行不通,我尝试了所有方法,我在下面给出了代码

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends Activity {
VideoView myVideoView;
ProgressDialog progDailog;
AudioManager audio;
MediaController mediaController;
String unStringUrl="rtsp://his.dvrdns.org:8554/channel/2";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    myVideoView = (VideoView)findViewById(R.id.videoplayer);        
    progDailog = ProgressDialog.show(MainActivity.this, null, "Video loading...", true);        
    audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

    mediaController = new MediaController(this);
    myVideoView.setMediaController(mediaController);
    myVideoView.setVideoURI(Uri.parse(unStringUrl));
    myVideoView.requestFocus();

    myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        public void onPrepared(MediaPlayer arg0) {

                    // called too soon with rtsp in 4.1

            if(progDailog != null) {
                progDailog.dismiss();
            }

            myVideoView.start();
        }
    });

    myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            /*Intent intent = new Intent(MyVideoView.this, lastActivity);
            intent.putExtra("cleTitre", activityTitle);
            intent.putExtra("cleSegment", activityCat);
            startActivity(intent);*/
        }
    });

    myVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
        public boolean onError(MediaPlayer mp, int what, int extra) {
            if(progDailog != null) {
                progDailog.dismiss();
            }

            return false;
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

最佳答案

您可以尝试在应用程序的 list 文件中的(下一行)中包含 internet -Permisison 行。在我的例子中它起作用了。

使用权限 android:name="android.permission.INTERNET"

希望这对您有所帮助。

关于android - RTSP 安卓媒体播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14943646/

相关文章:

ImageView 的 Android 辅助功能

java - Android - 将 TCP 客户端转换为 UDP 客户端

Android布局textview和listview结合

java - 以编程方式将规则添加到布局中已有的 View - Android

android - 如何在 Android 中制作 VideoView 预览 UI?

android - HTTP 登录的 AsyncTask() 不起作用

android - 使用 arrayadapter<HashMap<String, String>> 填充 Listview

java - 在主代码中使用 AsyncTask 中的变量

java - 在 Android 上更改 ListView 选择的颜色

android - Firebase getCurrentUser 在新的 android Activity 中返回 null