如何使用videoView和inputStream播放视频

时间:2013-06-26 17:08:01

标签: android inputstream android-videoview playback

似乎videoView只支持几种播放视频的方法,但它们都不支持最通用的播放形式,这很奇怪(因为我认为所有其他方法都使用它)。

我的问题:如何设置videoView来播放inputStream(任何类型的inputStream,甚至是我自己定制的一个)?

是否可以在没有实际将数据复制到文件然后播放或者通过某种技巧来“管道”数据的情况下实现?

我认为音频缺少同样的东西,但我不确定。

1 个答案:

答案 0 :(得分:-1)

试试这个:

public static String getDataSource(InputStream inputStream) throws IOException {
        if (!URLUtil.isNetworkUrl(path)) {
            return path;
       } else {
           URL url = new URL(path);
           URLConnection cn = url.openConnection();
           cn.connect();
            InputStream stream = inputStream;
            if (stream == null)
                throw new RuntimeException("stream is null");
            File temp = File.createTempFile("mediaplayertmp", "dat");
            temp.deleteOnExit();
            String tempPath = temp.getAbsolutePath();
            FileOutputStream out = new FileOutputStream(temp);
            byte buf[] = new byte[128];
            do {
                int numread = stream.read(buf);
                if (numread <= 0)
                    break;
                out.write(buf, 0, numread);
            } while (true);
            try {
                stream.close();
                out.close();
            } catch (IOException ex) {
              //  Log.e(TAG, "error: " + ex.getMessage(), ex);
            }
            return tempPath;
        }
    }