标签: android-video-player

android如何在媒体播放器的表面视图中调整视频宽度和高度

想要在曲面视图中调整视频大小

我正在使用Surface视图和视频持有者在Media Player中播放视频...

//但是在某些设备上实现MediaPlayerControl时,请说Micromax,iball,Akash平板电脑,它会提供ACRA错误跟踪跟踪的抽象方法错误.

现在我想解决上面提到的问题:

  • 如何使媒体播放器控件在所有设备中都处于活动状态,而不会因某些设备中的媒体控制器的抽象方法而崩溃.

  • 如何调整视频的表面视图大小.

该代码在samsung galaxy gt p1000 OS 2.2和一些更便宜的设备WorldTeck等上运行f9 .

但在Creative ziio 7操作系统版本为2.2.1(480*800) 分辨率密度为160 dpi时,视频似乎被缩放并从边缘切断.

代码如下所示:

/* Media Player Control is commented due to force close in some devices say *micromax,Creative ziio, akash etc */

    public class VideoViewerActivity extends Activity implements
            OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener,
            OnVideoSizeChangedListener, SurfaceHolder.Callback {
        // implements  ERROR in some devices , MediaPlayerControl
        private static final String TAG = "MediaPlayerDemo";
        private int mVideoWidth;
        private int mVideoHeight;
        private MediaPlayer mMediaPlayer;
        private …
Run Code Online (Sandbox Code Playgroud)

android android-video-player android-layout

5
推荐指数
1
解决办法
1万
查看次数

从资产文件夹或SD卡访问文件有什么不同

我正在开发一个应用程序,我必须使用三个不同大小的文件(1mb,5mb,15mb).我搜索过,然后才知道我们可以将这些视频保存在assets文件夹中并可以使用这些视频.

其次,我开始知道我们可以将这些视频保存在资源文件夹和安装时间,我们可以将所有视频移动到SD卡.当尝试第二种方法由于更大的文件大小而面临问题.

那么,任何人都可以告诉我两种方法之间有什么区别,我应该使用哪种方法.任何指针将不胜感激.

java android android-video-player android-assets android-sdcard

5
推荐指数
1
解决办法
700
查看次数

如何从android播放rtsp直播?(rtsp://形式someserver:端口/现场/ 001204A006F5.stream)

我有这个视频url rtsp:// someserver:port/live/001204A006F5.stream并希望从Android媒体播放器播放相同内容.我编写了以下代码片段但是android正在显示一个带有msg"无法播放此视频"的对话框.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);`

    videoPlayer = (VideoView) findViewById(R.id.videoPlayer);   
    videoPlayer.setOnPreparedListener(this);
    videoPlayer.setOnCompletionListener(this);
    videoPlayer.setKeepScreenOn(true);    
    Uri uri = Uri.parse("rtsp://someserver:port/live/001204A006F5.stream");
    videoPlayer.setVideoURI(uri);
}

/** This callback will be invoked when the file is ready to play */
public void onPrepared(MediaPlayer vp) {
    if(videoPlayer.canSeekForward()) videoPlayer.seekTo(videoPlayer.getDuration()/5);
       videoPlayer.start();
}
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?或者无法使用VideoView播放该链接?

android android-video-player android-videoview

5
推荐指数
0
解决办法
4501
查看次数

如何在全屏幕中实现android视频播放器

我已经实现了Android视频播放器,但我不需要这样我需要什么意思当打开活动我需要支付视频半屏在中心当我点击按钮全屏按钮然后我需要全屏支付,如何实现它帮助我....

VideoPlayerActivity

public class VideoPlayerActivity extends Activity implements SurfaceHolder.Callback, MediaPlayer.OnPreparedListener, VideoControllerView.MediaPlayerControl {

    SurfaceView videoSurface;
    MediaPlayer player;
    VideoControllerView controller;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_player);

        videoSurface = (SurfaceView) findViewById(R.id.videoSurface);
        SurfaceHolder videoHolder = videoSurface.getHolder();
        videoHolder.addCallback(this);

        player = new MediaPlayer();
        controller = new VideoControllerView(this);

        try {
            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
            player.setDataSource(this, Uri.parse("http:/myipadree/sites/default/files/759226_639541239394676_1125470178_n.mp4"));
            player.setOnPreparedListener(this);
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) …
Run Code Online (Sandbox Code Playgroud)

android android-video-player

5
推荐指数
1
解决办法
9029
查看次数

如何通过Android视频播放器中的直接链接播放MP4视频?

我正在制作一个Android应用程序,我需要通过直接下载链接在Android默认本机视频播放器中播放mp4视频.

要打开Android视频播放器,我使用以下代码

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://b.revvolution.com/video/albums-3ry/newshare-der-34972.mp4?download=1"));

intent.setDataAndType(Uri.parse("http://b.revvolution.com/video/albums-3ry/newshare-der-34972.mp4?download=1"), "video/*");

startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

这里的URL是mp4视频的直接可下载链接.此代码打开视频播放器,但视频未加载到视频播放器中

我也使用过这个URL

http://b.revvolution.com/video/albums-3ry/newshare-der-34972.mp4
Run Code Online (Sandbox Code Playgroud)

此网址包含html5视频播放器,但视频未在Android视频播放器中加载

但是,当我使用3GP视频的链接时

http://www.androidbegin.com/tutorial/AndroidCommercial.3gp
Run Code Online (Sandbox Code Playgroud)

然后它工作.

请帮忙.

video android android-video-player android-intent

5
推荐指数
1
解决办法
3674
查看次数

如果在Android视频视图中缓冲区达到20%,如何启动(播放)视频

我有一个视频视图,通过使用来自服务器的URL播放视频.我希望一旦缓冲达到20%就播放视频.所以我已将setOnBufferingUpdateListener的监听器添加到如下所示的mediaplayer.

        Uri video = Uri.parse(videoUrl);
        videoView.setVideoURI(video);
        videoView.requestFocus();
        videoView.setOnPreparedListener(new OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {
                mp.setOnBufferingUpdateListener(Activity);
                progressVideoView.setVisibility(View.GONE);
                videoView.start();
            }
        });

        videoView.setOnErrorListener(new OnErrorListener() {

            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
                Log.d("Error", "------>error"+what+"/"+extra);
                if (extra != 0) {
                    Utilities.showToast(ViewVlipActivity.this,
                            "Sorry, This video cannot be played.");
                }

                return false;
            }
        });
    videoView.setOnCompletionListener(new OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
            }

        });
Run Code Online (Sandbox Code Playgroud)

我的onbuffer听众如下

@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
    //seekbar.setSecondaryProgress(percent);
    Log.d("Buffer", "------>Buffer"+percent);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法获得任何登录缓冲区侦听器,直到缓冲区结束.我的视频持续时间约为2分钟,这是MP4视频.

android-video-player android-mediaplayer android-videoview

5
推荐指数
0
解决办法
1386
查看次数

在原生 Android videoPlayer 上显示自定义视频广告,就像在 Youtube 上一样

我只是想知道是否可以在本机 videoPlayer 上显示自定义视频广告。我正在对这个主题进行研发,并从谷歌开发人员那里获得了 IMA SDK。

链接如下:-

https://developers.google.com/interactive-media-ads/docs/sdks/android/quickstart

我下载了它的示例并让它们在我的系统上运行,它们完全在做我想要的同样的事情。我研究了代码,发现他们使用特殊类型的 od URL 来显示他们的视频,所以我的第一个问题是如何获取该 URL,并且可以免费制作吗?

或者我需要使用框架布局并且必须构建我的自定义用户界面来实现这一点。

重点是我有我的商店,我只想在我的应用程序中将我的商店视频作为本机视频播放器上的广告实现。我对这种方法很陌生,并试图找到好的解决方案。因此,我在这里向各位专家寻求一些指导。

任何帮助将不胜感激,请给我一些建议,我将非常感谢你。

问候

android android-video-player android-studio video-ads imasdk

5
推荐指数
0
解决办法
1933
查看次数

在Android MediaStore.EXTRA_DURATION_LIMIT中不能在6.0及更高版本的设备中使用

我正在使用LG Nexus(6.0)。当我使用相机使用以下代码捕获视频时。

   Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
   fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
    // set video quality
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码给出了它的持续时间限制。

    intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
Run Code Online (Sandbox Code Playgroud)

相机似乎忽略了持续时间限制。在任何6.0设备上,它均不起作用。还有另一种方法来限制6.0 +设备上的捕获视频持续时间吗?

video android video-capture android-video-player

5
推荐指数
1
解决办法
1069
查看次数

无法从SD卡在VideoView中打开播放此视频

嗨,我正在尝试从VideoView的手机内部存储中播放视频,但是我的手机提示“无法播放此视频”。我在主要活动中获取视频路径,并将其传递给投影仪活动。

这是路径:'/ storage / emulated / 0 / storage / emulated / 0 / snaptube / download / SnapTube Video / Justin Bieber-对不起(目的_运动).mp4'

OnCreate代码:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_projector);

        Intent intent = getIntent();
        String vidpath = intent.getExtras().getString("path");
        p = (TextView) findViewById(R.id.videopath);
        p.setText(vidpath);

        Uri path= Uri.parse(Environment.getExternalStorageDirectory()+vidpath);

        viewvid=(VideoView) this.findViewById(R.id.videoView);
        Log.i("vidpath","here");
        viewvid.setVideoURI(path);
        viewvid.start();


    }
Run Code Online (Sandbox Code Playgroud)

这是我从MainActivity获取视频路径的方式:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getSupportActionBar().setTitle("Video Projector");
        gall = (Button) findViewById(R.id.gallery);
        gall.setOnClickListener(this);
    }

    @ Override
    public void onActivityResult(int requestCode, int resultCode, Intent …
Run Code Online (Sandbox Code Playgroud)

mp4 android-video-player android-videoview

5
推荐指数
1
解决办法
727
查看次数

无法在WebViewClient的shouldInterceptRequest提供的Webview中擦除视频

我正在重写 的方法WebViewClient来提供本地视频流。视频播放和暂停都很好,但用户根本无法擦除——只是从同一位置继续播放。我怎样才能让用户可以更改播放位置?shouldInterceptRequest

擦洗在 web 视图中不起作用

代码:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val webView = findViewById<WebView>(R.id.webView)
    WebView.setWebContentsDebuggingEnabled(true)
    webView.webViewClient = object : WebViewClient() {
        override fun shouldInterceptRequest( view: WebView?, request: WebResourceRequest?
        ): WebResourceResponse? {
            if (request?.url.toString().contains("1.mp4")) {
                return WebResourceResponse(
                    "video/mp4",
                    "UTF-8",
                    resources.openRawResource(R.raw.movie)
                )
            }
            return super.shouldInterceptRequest(view, request)
        }
    }

    webView.loadDataWithBaseURL(
        "http://fake.com",
        """
        <!DOCTYPE html>
        <html>
            <p>Video 1:</p>
            <p><video src="http://fake.com/1.mp4" /></p>
        </html>
    """.trimIndent(), "text/html", StandardCharsets.UTF_8.name(), null
    )
}
Run Code Online (Sandbox Code Playgroud)

是一个有问题的仓库。请注意,这不是真正的用例,只是一个最小的示例。

android android-video-player android-webview

5
推荐指数
0
解决办法
284
查看次数