如何使用远程 URL 在 Android 模拟器中播放 mp4 视频?

Posted

技术标签:

【中文标题】如何使用远程 URL 在 Android 模拟器中播放 mp4 视频?【英文标题】:How to Play mp4 Video in Android Emulator Using Remote URL? 【发布时间】:2011-09-28 17:58:09 【问题描述】:

我使用了以下代码,但此代码给我错误“抱歉,无法播放此视频”。

07-05 16:58:19.525: INFO/AwesomePlayer(34): mConnectingDataSource->connect() 返回 -1007 07-05 16:58:19.525: 错误/MediaPlayer(1242): 错误 (1, -1007) 07-05 16:58:19.525: 错误/MediaPlayer(1242): 错误 (1,-1007) 07-05 16:58:19.525:调试/视频视图(1242):错误:1,-1007

我的代码是:-

公共类 VideoPlayerController 扩展 Activity @覆盖 公共无效 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); 设置内容视图(R.layout.main); VideoView videoView = (VideoView) findViewById(R.id.VideoView); 媒体控制器 mediaController = new MediaController(this); mediaController.setAnchorView(videoView); 字符串视频="http://s509.photobucket.com/albums/s338/eveanthony/?action=view&current=Video013.mp4"; videoView.setMediaController(mediaController); videoView.setVideoURI(Uri.parse(Video)); videoView.start();

【问题讨论】:

模拟器也没有为我播放 mp4 视频。我用设备测试过,效果很好。通过我将视频网址粘贴到浏览器中,视频链接似乎已损坏.. Mp4 视频正在模拟器上运行,但不能来自远程 URL,只能来自本地文件。 您是否在设备上尝试过。对我来说,在模拟器上只能播放 3gp,在设备上我也可以播放 mp4。正如我所提到的,问题中的视频网址似乎已损坏。 不,我在模拟器上试过了。它工作得很好,但只能播放本地文件。 【参考方案1】:

您需要在原始设备而不是模拟器上执行该应用程序,因为它不支持播放视频文件。在极少数情况下它可能会,但它确实取决于您的系统配置。

【讨论】:

【参考方案2】:

android 4.1.2 版本似乎在 youtube 应用程序的模拟器中播放 mp4 视频,而不是其他地方。我测试了它。英特尔和非英特尔版本都可以工作。 4.0.3 没玩过。

【讨论】:

【参考方案3】:
private VideoView myVideoView;
private int position = 0;
private ProgressDialog progressDialog;
private MediaController mediaControls;

@Override
protected void onCreate(final Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
   private static final String Videos_URL = "*Your_URI*";

    // Get the layout from video_main.xml
    setContentView(R.layout.activity_main);

    // Find your VideoView in your video_main.xml layout
    myVideoView = (VideoView) findViewById(R.id.videoView);

    // Create a progressbar
    progressDialog = new ProgressDialog(this);
    // Set progressbar title
    progressDialog.setTitle("Anything u Want");
    // Set progressbar message
    progressDialog.setMessage("Loading...");

    progressDialog.setCancelable(false);
    // Show progressbar
    progressDialog.show();

    try 
        Uri video = Uri.parse(Videos_URL);
        myVideoView.setVideoURI(video);
        myVideoView.setMediaController(mediaControls);
     catch (Exception e) 
        Log.e("Error", e.getMessage());
        e.printStackTrace();
    

    myVideoView.requestFocus();
    myVideoView.setOnPreparedListener(new OnPreparedListener() 
        // Close the progress bar and play the video
        public void onPrepared(MediaPlayer mp) 
            progressDialog.dismiss();
            myVideoView.seekTo(position);
            if (position == 0) 
                myVideoView.start();
             else 
                myVideoView.pause();
            
        
    );



@Override
public void onSaveInstanceState(Bundle savedInstanceState) 
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putInt("Position", myVideoView.getCurrentPosition());
    myVideoView.pause();


@Override
public void onRestoreInstanceState(Bundle savedInstanceState) 
    super.onRestoreInstanceState(savedInstanceState);
    position = savedInstanceState.getInt("Position");
    myVideoView.seekTo(position);

【讨论】:

以上是关于如何使用远程 URL 在 Android 模拟器中播放 mp4 视频?的主要内容,如果未能解决你的问题,请参考以下文章

Bot 是远程的,但回调 URL 是 localhost

如何在 android 中从远程 url 播放实时视频流?

Android Studio远程连接模拟器调试

Android:如何远程登录电话?

使用 Android 模拟器进行远程调试

使用chrome远程调试设备及调试模拟器设备