安卓电视直播

我正在开发应用程序,我必须实现直播电视流媒体.我的谷歌搜索让我相信直到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轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...