GVKun编程网logo

js切换video的src(videojs切换视频)

25

如果您想了解js切换video的src的相关知识,那么本文是一篇不可错过的文章,我们将对videojs切换视频进行全面详尽的解释,并且为您提供关于AndroidVideoView,需要快速切换视频、a

如果您想了解js切换video的src的相关知识,那么本文是一篇不可错过的文章,我们将对videojs切换视频进行全面详尽的解释,并且为您提供关于Android VideoView,需要快速切换视频、android – VideoView内联/全屏模式切换、android-layout – 切换vs切换、android.provider.MediaStore.Video.VideoColumns的实例源码的有价值的信息。

本文目录一览:

js切换video的src(videojs切换视频)

js切换video的src(videojs切换视频)

<video id="dsp_video" type="video/mp4"poster="" controls="controls" preload="none">
	<source id="mysource" src=""></source>
	你的浏览器不支持video播放
</video>
<script type="text/javascript">
	$(".try").each(function(index){
		$(this).click(function(e){				
			//$("#dsp_video>source").attr("src",videoList[index]);  //注意切换source的src无效
			$("#dsp_video").attr("src",videoList[index]);  //必须切换video标签的src
			$("#video_wrap").show();
		});
	});
</script>

Android VideoView,需要快速切换视频

Android VideoView,需要快速切换视频

我正在开发一个新的应用程序,并使用VideoView显示mpeg剪辑.

我需要非常快速地在视频之间切换,但是,将新剪辑加载到VideoView似乎需要大约半秒的黑屏.

过渡必须是无缝的,你将如何解决这类问题?

解决方法

我有一个类似的问题,并解决了静态图像( ImageView)转换:

>使用VideoView通过VideoView构建FrameLayout
> ImageView显示视频的第一帧
>最初ImageView是可见的
>启动视频,等待任意时间(例如2-300ms)
>隐藏ImageView

切换两个视频:
– 显示图像
– 切换视频
– 隐藏图像

有点hackish但为我工作

android – VideoView内联/全屏模式切换

android – VideoView内联/全屏模式切换

我正在研究android中的一个自定义视频播放器.我正在使用VideoView播放视频.最初我的VideoView将具有一定的尺寸(比方说尺寸=(宽度,高度)=(400,300)).我的自定义视频视图的控制按钮之一是“展开/折叠”.单击“展开/折叠”按钮后,我想将VideoView大小设置为全屏(表示设备的全屏大小),如果当前VideoView大小为内联,反之亦然(从全屏到内联也是如此).

有人知道完成上述任务的正确方法吗?

解决方法:

首先,你有胆量问一个Android问题,并有一个iOS徽标;)(开玩笑)

但是,我认为你可以使用这个:

    displayMetrics metrics = new displayMetrics(); getwindowManager().getDefaultdisplay().getMetrics(metrics);
    android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams();
    params.width =  metrics.widthPixels;
    params.height = metrics.heightPixels;
    params.leftMargin = 0;
    videoView.setLayoutParams(params);

并将其设置回:

    displayMetrics metrics = new displayMetrics(); getwindowManager().getDefaultdisplay().getMetrics(metrics);
    android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams();
    params.width =  (int) (400*metrics.density);
    params.height = (int) (300*metrics.density);
    params.leftMargin = 30;
    videoView.setLayoutParams(params);

我假设您知道如何制作OnClickListener.

我在这里得到的信息:VideoView Full screen in android application

EDIT1
我可以很快想到两件事.
 1.添加:getwindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
 2.或试试这个:

YourButton.setVisibility(View.GONE);

要么

YourButton.setVisibility(View.INVISIBLE);

android-layout – 切换vs切换

android-layout – 切换vs切换

我正在尝试决定是使用开关还是切换来设置闹钟我是我的 Android应用程序.对于相当新的Android并且不了解或完全理解框架工作的所有细节.选择通过切换开关触发警报的缺点是什么,反之亦然? android框架中是否有滑动切换功能?

解决方法

您需要记住的第一件事是,您想要编译您的应用程序的API?

由于API 1和Switches仅在API 14之后可用,因此可以使用Toggle Buttons.

除此之外,这只是一个简单的决定,哪一个是用户界面/设计的最佳选择
在我看来,交换机清楚地表明了当前选择的内容.

Is there a slide toggle available in android framework?

是的,开关可以用作幻灯片切换.

代码非常简单,基本上可以对这两个按钮使用相同的思路.

这是一个切换按钮的示例

btnSwitch = (Switch) findViewById(R.id.switch_1);

btnSwitch.setonCheckedchangelistener(new OnCheckedchangelistener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if (isChecked) {
            Log.i("Switch","ON");
        } else {
            Log.i("Switch","OFF");
        }
    }
});

这是一个切换按钮的示例

btnToggle = (ToggleButton) findViewById(R.id.toggle_1);

btnToggle.setonCheckedchangelistener(new OnCheckedchangelistener() {

    @Override
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if (isChecked) {
            Log.i("Toggle","ON");
        } else {
            Log.i("Toggle","OFF");
        }
    }
});

android.provider.MediaStore.Video.VideoColumns的实例源码

android.provider.MediaStore.Video.VideoColumns的实例源码

项目:easyfilemanager    文件:StorageProvider.java   
protected long getVideoForBucketCleared(long bucketId)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,VideosBucketThumbnailQuery.PROJECTION,VideoColumns.BUCKET_ID + "=" + bucketId,null,VideoColumns.DATE_MODIFIED + " DESC");
        if (cursor.movetoFirst()) {
            return cursor.getLong(VideosBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:FireFiles    文件:StorageProvider.java   
protected long getVideoForBucketCleared(long bucketId)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,VideoColumns.DATE_MODIFIED + " DESC");
        if (cursor.movetoFirst()) {
            return cursor.getLong(VideosBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:simple-share-android    文件:StorageProvider.java   
protected long getVideoForBucketCleared(long bucketId)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,VideoColumns.DATE_MODIFIED + " DESC");
        if (cursor.movetoFirst()) {
            return cursor.getLong(VideosBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:TinyTravelTracker    文件:Util.java   
public static String getMimeTypeForMedia(ContentResolver cr,int id,boolean isImage) {
    Cursor cursor;

    if(isImage)
        cursor = cr.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,new String [] {MediaStore.Images.Media.MIME_TYPE},ImageColumns._ID+" = ?",new String [] { String.valueOf(id) },null);
    else
        cursor = cr.query(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI,new String [] {MediaStore.Video.Media.MIME_TYPE},VideoColumns._ID+" = ?",null);

    try {
        if(!cursor.movetoFirst())
            return null;

        return cursor.getString(0);
    }
    finally {
        cursor.close();
    }
}
项目:TinyTravelTracker    文件:Util.java   
public static String getDataFilepathForMedia(ContentResolver cr,boolean isImage)
{
    Cursor cursor;

    if(isImage)
        cursor = cr.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,new String [] {MediaStore.Images.Media.DATA},new String [] {MediaStore.Video.Media.DATA},null);

    try {
        if(!cursor.movetoFirst())
            return null;

        return cursor.getString(0);
    }
    finally {
        cursor.close();
    }
}
项目:nexus-gallery    文件:LocalAlbum.java   
public LocalAlbum(Path path,galleryApp application,int bucketId,boolean isImage,String name) {
    super(path,nextVersionNumber());
    mApplication = application;
    mResolver = application.getContentResolver();
    mBucketId = bucketId;
    mName = name;
    mIsImage = isImage;

    if (isImage) {
        mWhereClause = ImageColumns.BUCKET_ID + " = ?";
        mOrderClause = ImageColumns.DATE_TAKEN + " DESC,"
                + ImageColumns._ID + " DESC";
        mBaseUri = Images.Media.EXTERNAL_CONTENT_URI;
        mProjection = LocalImage.PROJECTION;
        mItemPath = LocalImage.ITEM_PATH;
    } else {
        mWhereClause = VideoColumns.BUCKET_ID + " = ?";
        mOrderClause = VideoColumns.DATE_TAKEN + " DESC,"
                + VideoColumns._ID + " DESC";
        mBaseUri = Video.Media.EXTERNAL_CONTENT_URI;
        mProjection = LocalVideo.PROJECTION;
        mItemPath = LocalVideo.ITEM_PATH;
    }

    mNotifier = new ChangeNotifier(this,mBaseUri,application);
}
项目:easyfilemanager    文件:MediaDocumentsProvider.java   
@Override
public Cursor queryRecentDocuments(String rootId,String[] projection)
        throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection));

    final long token = Binder.clearCallingIdentity();
    Cursor cursor = null;
    try {
        if (TYPE_IMAGES_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI,ImageQuery.PROJECTION,ImageColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result,Images.Media.EXTERNAL_CONTENT_URI);
            while (cursor.movetoNext() && result.getCount() < 64) {
                includeImage(result,cursor);
            }
        } else if (TYPE_VIDEOS_ROOT.equals(rootId)) {
            // include all unique buckets
            cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,VideoQuery.PROJECTION,VideoColumns.DATE_MODIFIED + " DESC");
            copyNotificationUri(result,Video.Media.EXTERNAL_CONTENT_URI);
            while (cursor.movetoNext() && result.getCount() < 64) {
                includeVideo(result,cursor);
            }
        } else {
            throw new UnsupportedOperationException("Unsupported root " + rootId);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
        Binder.restoreCallingIdentity(token);
    }
    return result;
}
项目:easyfilemanager    文件:StorageProvider.java   
protected long getVideoForPathCleared(String path)throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,VideoColumns.DATA + "=? ",new String[] { path.replaceAll("'","''") },VideoColumns.DATE_MODIFIED + " DESC");
        if (cursor.movetoFirst()) {
            return cursor.getLong(VideosBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:medialibrary    文件:LocalAlbum.java   
public LocalAlbum(Path path,MediaDataContext application,application);
}
项目:FireFiles    文件:MediaDocumentsProvider.java   
@Override
public Cursor queryRecentDocuments(String rootId,cursor);
            }
        } else {
            throw new UnsupportedOperationException("Unsupported root " + rootId);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
        Binder.restoreCallingIdentity(token);
    }
    return result;
}
项目:FireFiles    文件:StorageProvider.java   
protected long getVideoForPathCleared(String path)throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,VideoColumns.DATE_MODIFIED + " DESC");
        if (cursor.movetoFirst()) {
            return cursor.getLong(VideosBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:simple-share-android    文件:MediaDocumentsProvider.java   
@Override
public Cursor queryRecentDocuments(String rootId,cursor);
            }
        } else {
            throw new UnsupportedOperationException("Unsupported root " + rootId);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
        Binder.restoreCallingIdentity(token);
    }
    return result;
}
项目:simple-share-android    文件:StorageProvider.java   
protected long getVideoForPathCleared(String path)throws FileNotFoundException {
    final ContentResolver resolver = getContext().getContentResolver();
    Cursor cursor = null;
    try {
        cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI,VideoColumns.DATE_MODIFIED + " DESC");
        if (cursor.movetoFirst()) {
            return cursor.getLong(VideosBucketThumbnailQuery._ID);
        }
    } finally {
        IoUtils.closeQuietly(cursor);
    }
    throw new FileNotFoundException("No video found for bucket");
}
项目:WiCamera3D    文件:OperationFile.java   
public static Uri intTodbv(Context context,String type,String title,int orientation,String path,Long length) {
    // Insert into MediaStore.
    ContentValues values = new ContentValues(9);
    values.put(VideoColumns.TITLE,title);
    values.put(VideoColumns.disPLAY_NAME,title + ".mp4");
    values.put(VideoColumns.DATE_TAKEN,new Date().toLocaleString());
    values.put(VideoColumns.MIME_TYPE,type);
    // values.put(VideoColumns.,orientation);
    values.put(VideoColumns.DATA,path);
    values.put(VideoColumns.SIZE,length);
    // values.put(ImageColumns.WIDTH,width);
    // values.put(ImageColumns.HEIGHT,height);

    // if (location != null) {
    // values.put(ImageColumns.LATITUDE,location.getLatitude());
    // values.put(ImageColumns.LONGITUDE,location.getLongitude());
    // }

    Uri uri = null;
    int stromode = StoredData.getInt(StoredData.M_STORAGEMODE,0);
    // if (stromode == 0) {
    // uri = context.getContentResolver().insert(
    // Video.Media.INTERNAL_CONTENT_URI,values);
    // } else {
    uri = context.getContentResolver().insert(
            Video.Media.EXTERNAL_CONTENT_URI,values);
    // }
    context.sendbroadcast(new Intent("android.hardware.action.NEW_VIDEO",uri));
    if (uri == null) {

        return null;
    }
    return uri;
}
项目:MUtils    文件:MakeVideoTask.java   
@Override
protected void onActivityResult(Context context,int requestCode,int resultCode,Intent data) {
    if (resultCode != Activity.RESULT_OK) {
        return;
    }
    Cursor cursor = mExecutor.getContext().getContentResolver().query(data.getData(),null);
    if (cursor == null || !cursor.movetoNext()) {
        return;
    }
    String path = cursor.getString(cursor.getColumnIndex(VideoColumns.DATA));
    MakeVideoListener listener = getListener(MakeVideoListener.class);
    if (listener != null) {
        listener.onComplete(Uri.fromFile(new File(path)));
    }
}
项目:TinyTravelTracker    文件:Util.java   
/**
 * True if the media exists,false otherwise
 * @param context
 * @param id
 * @param isImage false == video
 * @return
 */
public static boolean mediaExists(Context context,boolean isImage) {
    ContentResolver cr = context.getContentResolver();

    Cursor cursor;
    if(isImage)
        cursor = cr.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null);

    try {
        if(!cursor.movetoFirst())
            return false;

        if(!new File(cursor.getString(0)).exists())
            return false;
    }
    finally {
        cursor.close();
    }

    return true;
}
项目:nexus-gallery    文件:SaveVideoFileUtils.java   
private static File getSaveDirectory(ContentResolver contentResolver,Uri uri) {
    final File[] dir = new File[1];
    querySource(contentResolver,uri,new String[] { VideoColumns.DATA },new ContentResolverQueryCallback() {
        @Override
        public void onCursorResult(Cursor cursor) {
            dir[0] = new File(cursor.getString(0)).getParentFile();
        }
    });
    return dir[0];
}
项目:WoTu    文件:LocalAlbum.java   
public LocalAlbum(Path path,WoTuApp application,long bucketId,nextVersionNumber());
    mApplication = application;
    mResolver = application.getContentResolver();
    mBucketId = bucketId;
    mName = getLocalizedname(application.getResources(),bucketId,name);
    mIsImage = isImage;

    if (isImage) {
        mWhereClause = ImageColumns.BUCKET_ID + " = ?";
        mOrderClause = ImageColumns.DATE_TAKEN + " DESC,"
                + VideoColumns._ID + " DESC";
        mBaseUri = Video.Media.EXTERNAL_CONTENT_URI;
        mProjection = LocalVideo.PROJECTION;
        mItemPath = LocalVideo.ITEM_PATH;
    }

    mNotifier = new Datanotifier(this,application);
}
项目:Selfie-Camera    文件:MainActivity.java   
private Media getLatestMedia(boolean video) {
    Media media = null;
    Uri baseUri = video ? Video.Media.EXTERNAL_CONTENT_URI
            : MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
    Uri query = baseUri.buildUpon().appendQueryParameter("limit","1")
            .build();
    String[] projection = video ? new String[] { VideoColumns._ID,VideoColumns.DATE_TAKEN } : new String[] { ImageColumns._ID,ImageColumns.DATE_TAKEN,ImageColumns.ORIENTATION };
    String selection = video ? "" : ImageColumns.MIME_TYPE
            + "='image/jpeg'";
    String order = video ? VideoColumns.DATE_TAKEN + " DESC,"
            + VideoColumns._ID + " DESC" : ImageColumns.DATE_TAKEN
            + " DESC," + ImageColumns._ID + " DESC";
    Cursor cursor = null;
    try {
        cursor = getContentResolver().query(query,projection,selection,order);
        if (cursor != null && cursor.movetoFirst()) {
            long id = cursor.getLong(0);
            long date = cursor.getLong(1);
            int orientation = video ? 0 : cursor.getInt(2);
            Uri uri = ContentUris.withAppendedId(baseUri,id);
            if (MyDebug.LOG)
                Log.d(TAG,"found most recent uri for "
                        + (video ? "video" : "images") + ": " + uri);
            media = new Media(id,video,date,orientation);
        }
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
    return media;
}
项目:WiCamera3D    文件:VideoProvider.java   
/**
 * 获取单个文件的视频信息
 * @param videoPath
 * @return 视频信息
 */
public VideoInfo getVideoInfoDeprecated(String videoPath) {
    Log.w(TAG,"[getVideoInfo]传入路径: "+videoPath);   
    VideoInfo info = null;
     final int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
      if (sdkVersion < 10){
      String where = MediaColumns.DATA + "=?";   
         String[] selectionArgs = new String[] { videoPath };   
         try
    {
          if(context != null){
                    Cursor cursor = context.getContentResolver().query(                    
                             MediaStore.Video.Media.EXTERNAL_CONTENT_URI,where,selectionArgs,null); 
                if (cursor != null) {    
                       cursor.movetoFirst();        
                        String title = cursor                            
                                .getString(cursor                                    
                                        .getColumnIndexOrThrow(MediaColumns.TITLE));                    
                        String album = cursor                            
                                .getString(cursor                                    
                                        .getColumnIndexOrThrow(VideoColumns.ALBUM));                    
                        String artist = cursor                            
                                .getString(cursor                                    
                                        .getColumnIndexOrThrow(VideoColumns.ARTIST));                    
                        String displayName = cursor                            
                                .getString(cursor                                    
                                        .getColumnIndexOrThrow(MediaColumns.disPLAY_NAME));                    
                        String mimeType = cursor                            
                                .getString(cursor                                    
                                        .getColumnIndexOrThrow(MediaColumns.MIME_TYPE));                    
                        String path = cursor                            
                                .getString(cursor                                    
                                        .getColumnIndexOrThrow(MediaColumns.DATA));                    
                        long duration = cursor                            
                                .getInt(cursor                                    
                                        .getColumnIndexOrThrow(VideoColumns.DURATION));                    
                        long size = cursor                            
                                .getLong(cursor                                    
                                        .getColumnIndexOrThrow(MediaColumns.SIZE));  
                    }              
            }
    } catch (Exception e)
    {
        // Todo: handle exception
    }

}
    return info;
}
项目:nexus-gallery    文件:SaveVideoFileUtils.java   
/**
 * Insert the content (saved file) with proper video properties.
 */
public static Uri insertContent(SaveVideoFileInfo mdstFileInfo,ContentResolver contentResolver,Uri uri ) {
    long NowInMs = System.currentTimeMillis();
    long NowInSec = NowInMs / 1000;
    final ContentValues values = new ContentValues(13);
    values.put(Video.Media.TITLE,mdstFileInfo.mFileName);
    values.put(Video.Media.disPLAY_NAME,mdstFileInfo.mFile.getName());
    values.put(Video.Media.MIME_TYPE,"video/mp4");
    values.put(Video.Media.DATE_TAKEN,NowInMs);
    values.put(Video.Media.DATE_MODIFIED,NowInSec);
    values.put(Video.Media.DATE_ADDED,NowInSec);
    values.put(Video.Media.DATA,mdstFileInfo.mFile.getAbsolutePath());
    values.put(Video.Media.SIZE,mdstFileInfo.mFile.length());
    int durationMs = retriveVideoDurationMs(mdstFileInfo.mFile.getPath());
    values.put(Video.Media.DURATION,durationMs);
    // copy the data taken and location info from src.
    String[] projection = new String[] {
            VideoColumns.DATE_TAKEN,VideoColumns.LATITUDE,VideoColumns.LONGITUDE,VideoColumns.RESOLUTION,};

    // copy some info from the source file.
    querySource(contentResolver,new ContentResolverQueryCallback() {
            @Override
                public void onCursorResult(Cursor cursor) {
                    long tiMetaken = cursor.getLong(0);
                    if (tiMetaken > 0) {
                        values.put(Video.Media.DATE_TAKEN,tiMetaken);
                    }
                    double latitude = cursor.getDouble(1);
                    double longitude = cursor.getDouble(2);
                    // Todo: Change || to && after the default location
                    // issue is
                    // fixed.
                    if ((latitude != 0f) || (longitude != 0f)) {
                        values.put(Video.Media.LATITUDE,latitude);
                        values.put(Video.Media.LONGITUDE,longitude);
                    }
                    values.put(Video.Media.RESOLUTION,cursor.getString(3));

                }
            });

    return contentResolver.insert(Video.Media.EXTERNAL_CONTENT_URI,values);
}

我们今天的关于js切换video的srcvideojs切换视频的分享已经告一段落,感谢您的关注,如果您想了解更多关于Android VideoView,需要快速切换视频、android – VideoView内联/全屏模式切换、android-layout – 切换vs切换、android.provider.MediaStore.Video.VideoColumns的实例源码的相关信息,请在本站查询。

本文标签: