小编Jan*_*usz的帖子

如何从资源文件夹或原始文件夹中播放android中的视频?

我正在尝试在Android模拟器中播放视频我在我的资源文件夹中的视频以及原始文件夹但是在做了一些研究后仍然无法在我的模拟器中播放视频我正在使用android 2.1我的视频格式是mp4所以我不要认为这应该是一个问题任何人都可以给我一个示例代码,以便我可以了解更多?

问题是我需要显示视频的VideoView只会使用URI或文件路径指向视频.

如果我将视频保存在raw或assets文件夹中,我只能获得输入流或文件描述符,似乎没有什么可用于初始化VideoView.

更新

我仔细研究了MediaPlayer示例,并尝试使用FileDescriptor启动MediaPlayer到资源文件,如下面的代码所示:

SurfaceView videoView = (SurfaceView) findViewById(gettingStarted)
SurfaceHolder holder = videoView.getHolder();
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
final MediaPlayer player = new MediaPlayer();
player.setDisplay(holder);

player.setDataSource(getAssets().openFd(fileName).getFileDescriptor());
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {

   @Override
   public void onPrepared(MediaPlayer mp) {
      mp.start();
   }
});
Run Code Online (Sandbox Code Playgroud)

现在我得到以下异常:

java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
Run Code Online (Sandbox Code Playgroud)

似乎没有其他方法可以在启动时将文件复制到SD卡,这似乎浪费时间和内存.

video android assets

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

Android - 模拟后退按钮

当我在我的应用程序中按下按钮时,我需要返回上一个活动.

有任何想法吗?

android button back

66
推荐指数
3
解决办法
4万
查看次数

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

Android NDK中的文件操作

我出于性能原因使用Android NDK主要在C中创建应用程序,但似乎fopen等文件操作在Android中无法正常运行.每当我尝试使用这些功能时,应用程序崩溃.

如何使用Android NDK创建/写入文件?

c file-io java-native-interface android-ndk

63
推荐指数
4
解决办法
9万
查看次数

Android - 是否可以禁用主页按钮的单击

我有一个应用程序,当它启动时我必须禁用Android设备上的所有按钮,我成功禁用了结束通话和其他.我需要禁用主页按钮单击.它不应该对点击产生任何动作.

任何建议高度赞赏

android android-widget

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

在Android中删除ListView项目

有人可以给我一个删除所有ListView项目并替换为新项目的示例代码吗?

我尝试更换适配器项而没有成功.我的代码是

populateList(){

 results //populated arraylist with strings

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, results);

 listview.setAdapter(adapter);
 adapter.notifyDataSetChanged();
 listview.setOnItemClickListener(this);

}

// now populating list again

repopulateList(){

 results1 //populated arraylist with strings

 ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, results1);

 listview.setAdapter(adapter1);
 adapter1.notifyDataSetChanged();
 listview.setOnItemClickListener(this);
}
Run Code Online (Sandbox Code Playgroud)

这里的repopulateList()方法将添加到ListView项,但它不会删除/替换所有ListView项.

android android-listview

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

在android中使数据持久化

在我的应用程序中,有一些特定于应用程序的设置,下次我的应用程序启动时应该可以使用.

换句话说,我希望数据在应用程序周期的会话中可用.

这可以在不使用数据库(sqlite)的情况下实现.

android persistence

58
推荐指数
2
解决办法
4万
查看次数

为什么我的onItemSelectedListener没有在ListView中调用?

我正在使用像这样设置的ListView:

<ListView android:id="@android:id/list" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:longClickable="false"
    android:choiceMode="singleChoice">
</ListView>
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我将一个OnItemSelectedListener添加到ListView,如下所示:

getListView().setAdapter(adapter);
getListView().setOnItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

我的Activity实现了这样的监听器:

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    Log.d("Tag", "ListItemSelected: Parent: " + parent.toString() + " View: "
            + view.toString() + " Position: " + " Id: " + id);
}
Run Code Online (Sandbox Code Playgroud)

我的希望是,当我点击列表中的某些内容时,我会看到此调试输出.但调试输出永远不会显示在LogCat中.

android listener android-listview

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

如何以编程方式打开选项菜单?

我想以编程方式打开optionsMenu,而无需单击用户的菜单键.我该怎么办?

android menu button android-activity

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

区分Android上的开发模式和发布模式环境设置

我正在构建一个Android应用程序,并希望维护一些我可以调整的环境变量,具体取决于我是处于开发模式还是发布模式.例如,我需要调用Web服务,并且在任一模式下URL都会略有不同.我想将此设置和其他设置外部化,以便我可以根据目标部署轻松更改它们.

SDK中是否有任何最佳实践或任何内容可以满足此需求?

android development-environment release-management

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