【问题标题】:Android: How to record mp3 radio (audio) streamAndroid:如何录制 mp3 广播(音频)流
【发布时间】:2011-07-19 21:54:10
【问题描述】:

我最喜欢的广播电台播放 mp3 格式的广播音频流。在我的 android 应用程序中,我可以毫无问题地接收和播放它。

如何实现录音功能?我想将 mp3 广播流录制到我的 Android 手机 SD 卡中。

我尝试了 MediaRecorder 类但没有任何结果...

Android Developer: MediaRecorder

...

mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

...

很遗憾,我无法选择以下内容:

mRecorder.setAudioSource(MediaRecorder.AudioSource.MP3_STREAM); ... ;-)

如何录制 mp3 广播流?感谢任何帮助或代码 sn-ps...

【问题讨论】:

    标签: android stream mp3 record radio


    【解决方案1】:

    完美!解决方案是“逐字节”读取音频流。谢谢!!

    这里是我的代码 sn-ps:

            URL url = new URL("http://myradio,com/stream.mp3");
            inputStream = url.openStream();
            Log.d(LOG_TAG, "url.openStream()");
    
            fileOutputStream = new FileOutputStream(outputSource);
            Log.d(LOG_TAG, "FileOutputStream: " + outputSource);
    
            int c;
    
            while ((c = inputStream.read()) != -1) {
                Log.d(LOG_TAG, "bytesRead=" + bytesRead);
                fileOutputStream.write(c);
                bytesRead++;
            }
    

    【讨论】:

    • 您是否为此创建了应用程序?
    • 你是如何使用它来让 MediaPlayer 使用它并同时保存文件的?还有,“bytesRead”是怎么设置的?
    • 播放和录制都是异步任务。您可以毫无问题地开始两者。 bytesRead 只是一个用于调试的计数器(int)。
    • 您是否遇到过录音机录制音乐比播放器播放快的问题?逐字节使用这个方法?
    • 不,我没有遇到这个问题。我刚刚读取了输入流,它将被写入 FileOutputStream。生成的 mp3 播放良好。
    【解决方案2】:

    也许您应该“逐字节”读取音频流,然后将其放入新文件中?像一个简单的文件复制操作,使用 inputstream-outputstream。

    【讨论】:

    • 完美!解决方案是“逐字节”读取音频流。谢谢!!
    • 我尝试stackoverflow.com/a/5384161/5856328 读取流数据,但我得到了 inputStream.read()) == -1 为什么数据在流。你有什么想法吗?
    猜你喜欢
    • 2023-03-28
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2018-05-23
    • 2012-01-30
    • 2013-09-18
    • 2012-02-19
    相关资源
    最近更新 更多