如何在Android Wearable上播放视频文件?

时间:2014-08-12 22:55:10

标签: android video wear-os

您好我正在尝试在我的Android上播放视频文件。 视频文件位于可穿戴设备上的sdcard文件夹中。 但我无法使用我的Android应用程序播放它。 如果我在我的智能手机(Nexus 5)上运行相同的应用程序,它可以工作。

如何使用我的Android应用程序在Android Wearable上播放视频文件。

2 个答案:

答案 0 :(得分:1)

Android Wear仅包含Android Wear 5.0中的音频编解码器,因此普通的MediaPlayer API无法正常工作。你需要使用像ffmpeg,...

这样的视频库来自己动手

答案 1 :(得分:1)

最后我做到了。我不知道这是Android Wear特有的还是一个bug,但事实证明

String path = "android.resource://" + getPackageName() + "/" + R.raw.video_file;
File file = new File(path);

不允许访问Android Wear设备上的文件。

而是必须首先将文件转换为临时文件:

InputStream ins = MainActivityBackup.this.getResources().openRawResource (R.raw.hyperlapse2);
File tmpFile = null;
OutputStream output;

try {
    tmpFile = File.createTempFile("video","mov");
    output = new FileOutputStream(tmpFile);

    final byte[] buffer = new byte[102400];
    int read;

    while ((read = ins.read(buffer)) != -1) {
        output.write(buffer, 0, read);
    }
    output.flush();
    output.close();
    ins.close();
} catch (IOException e) {
    e.printStackTrace();
}

然后可以将其加载到videoView

mVideoView.setVideoPath(tmpFile.getPath());

如果您使用的是自己的视频解码器或ffmpeg或vitamio等库,那么Android Wear尚不支持原生视频播放。

我在大约5分钟内实现了vitamio,如果需要,可以通过gradle依赖项导入(在gradleplease上查找)。围绕vitamio videoView构建我的应用程序,它就像一个魅力。它甚至可以播放Flash视频。