安卓电视直播

前端之家收集整理的这篇文章主要介绍了安卓电视直播前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发应用程序,我必须实现直播电视流媒体.我的谷歌搜索让我相信直到2.1 android才能实现直播.

这样对吗?

当我获得媒体播放器的音乐代码时,我可以通过设置以下方法来使用它的类型:

mp.setAudioStreamType(2);

但我想知道它是否足以流式传输这样的代码并保存文件,如下面的方法

private void setDataSource(String path) throws IOException {
        if (!URLUtil.isNetworkUrl(path)) {
            mp.setDataSource(path);
        } else {
            Log.i("enter the setdata","enter the setdata");
            URL url = new URL(path);
            URLConnection cn = url.openConnection();
            cn.connect();
            InputStream stream = cn.getInputStream();
            if (stream == null)
                throw new RuntimeException("stream is null");
            File temp = File.createTempFile("mediaplayertmp","dat");
            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,numread);
            } while (true);
            mp.setDataSource(tempPath);

            try {
                stream.close();
                Log.i("exit the setdata","exit the setdata");
            }
            catch (IOException ex) {
                Log.e(TAG,"error: " + ex.getMessage(),ex);
            }
        }
    }

直播电视节目需要额外的东西吗?请指导我.

解决方法

打压“足够”:绝对不是.

您将所有数据从URL保存到设备,然后再播放.如果你可以保证它是一个小剪辑,这是有效的,但“直播电视流”意味着我们正在谈论以实时速率发送的未知长度的流.

这样做的影响是:

> N分钟长的节目将在播放开始前花费N分钟流式传输到设备.
>长时间广播有可能填满所有可用存储空间.

MediaPlayer.setDataSource(FileDescriptor fd)方法应该从您可以获取FileDescriptor的任何源读取数据,包括套接字.

有关如何使用它的具体细节将根据您使用的协议而有所不同,但实际上您需要从广播源读取数据,将其转码为合适的形式,并将其传输到fd.

猜你在找的Android相关文章