android怎样播放assets中的视频,关键代码video.setVideoPath("路径")对吗?我用了出错了.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎样播放assets中的视频,关键代码video.setVideoPath("路径")对吗?我用了出错了.相关的知识,希望对你有一定的参考价值。

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
video.setVideoPath("路径")是读取不到文件的
assets的读取方式:
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用AssetManager.close() 关闭AssetManager。

需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作
参考技术A AssetFileDescriptor fileDescriptor = assetManager.openFd("a2.mp3");
mediaPlayer = new MediaPlayer();

mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),

fileDescriptor.getStartOffset(),

fileDescriptor.getLength());

mediaPlayer.prepare();
mediaPlayer.start();

用MCI处置WAV视频时,怎样才能让视频在当前窗口播放

用MCI处理WAV视频时,怎样才能让视频在当前窗口播放
MCI播放视频默认是新开一个窗口播放,播放完毕返回原来的窗口,想着原来窗口播放如何做?

mciSendCommand或mciSendString怎样在播放avi时不弹出另一个窗口播放,我需要在之前设计好的窗口里播放。

我的代码:

//mciSendCommand

void mic_avi_play(char say_or_wmv[])
{

 MCIDEVICEID dev[20];
 MCI_OPEN_PARMS mciOpen;
 MCI_PLAY_PARMS mciPlay;

 mciOpen.lpstrElementName="sola.wmv";
 if(mciSendCommand(NULL,MCI_OPEN, MCI_OPEN_ELEMENT ,
  (DWORD)&mciOpen)==0)
  dev[0]=mciOpen.wDeviceID;
 else
  mciOpen.wDeviceID=dev[0];
 
 
 mciPlay.dwFrom = 0;
 mciSendCommand(mciOpen.wDeviceID,MCI_PLAY,MCI_NOTIFY | MCI_FROM,(DWORD)&mciPlay);
}

//mciSendString

void OnMyMenu(HWND hWnd)
{

mciSendString("open sola.wmv alias aa",NULL,0,hWnd);
mciSendString("play aa wait",NULL,0,hWnd);
mciSendString("close aa",NULL,0,hWnd);

}

//两个函数是一个效果

------解决方案--------------------
再OPEN之后,PLAY之前,发送MCI_WINDOW消息

可以参考下面的例子
MCI_DGV_WINDOW_PARMS WindowParms;

WindowParms.dwCallback = NULL;
WindowParms.hWnd = m_StaticAVI.GetSafeHwnd();
WindowParms.nCmdShow = SW_SHOW;
WindowParms.lpstrText = (LPSTR) NULL;
mciSendCommand( mciOpen.wDeviceID, MCI_WINDOW, MCI_DGV_WINDOW_HWND, (DWORD)&WindowParms );
 
jpg改rar

以上是关于android怎样播放assets中的视频,关键代码video.setVideoPath("路径")对吗?我用了出错了.的主要内容,如果未能解决你的问题,请参考以下文章

Vue示例之使用视频播放

Flutter 加载本地文件在Android设备报错

怎样实现自己写的Android视屏播放器播放rmvb格式的视频

在 Android 上的 WebView 中播放本地视频

如何从资产文件夹加载视频? (用 VideoView 播放它们)

如何在 Android WebView 中以横向全屏播放视频?