标签: audio-streaming

是否可以使用iPhone SDK中的HTTP实时流媒体读取元数据

使用HTTP Live Streaming方法播放实时流时,是否可以读取当前元数据(例如标题和艺术家)?这是一个iPhone收音机应用程序.

iphone metadata objective-c audio-streaming

10
推荐指数
3
解决办法
5913
查看次数

如何获取音频流的持续时间并从任何点继续音频流

描述:

我有一个音频播放器的代码.我可以通过单击进度条(在0到mediaplayer.getDuration()之间)从任何持续时间继续音频播放.它非常适合音频播放.

音频流中的问题:

  • 当我从互联网服务器(比如s3-bucket)流式传输音频文件时,它会正确开始流式传输.
  • 但是mediaPlayer.getDuration()和mediaPlayer.getCurrentPosition()返回错误的值.在流媒体开始时,mediaPlayer.getCurrentPosition()返回5个小时.
  • 由于这个原因,我无法从Stream的指定持续时间(0到流持续时间)继续音频流.

问题:

  1. 如何获取音频流的持续时间
  2. 如何从指定的持续时间继续音频流.例如,对于持续10分钟的文件,我想从第6分钟开始流式传输.

码:

public class MyAudioPlayer extends Activity 
implements OnClickListener{


    MediaPlayer mediaPlayer = null;
    private boolean isPaused=false;
    private boolean isStop = true;

    String filePath = null;
    String productName = null;

    ImageButton btnPlay = null;
    ImageButton btnPause = null;
    ImageButton btnReset = null;
    ImageButton btnStop = null;

    AudioManager audioManager = null;
    SeekBar volControl = null;
    SeekBar progressControl = null;
    TextView progressText = null;
    long durationInMillis = -1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

android audio-streaming android-mediaplayer

10
推荐指数
2
解决办法
1万
查看次数

如何在HTML5/JavaScript(无Flash)中调用SPEEX音频解码/编码

我正在开发一个项目,需要通过HTTP向/从服务器流式传输音频数据.

我们需要使用SPEEX压缩音频数据.

在Flash中,我们可以使用Alchemy和LibSpeex,但我们如何在JavaScript中完成它.可以使用HTML5.

谢谢.

彼得

javascript html5 speex audio-streaming

10
推荐指数
2
解决办法
7586
查看次数

如何阻止IDM抓取视频/音频

每次视频/音频流启动时,Internet Download Manager(IDM)都会感觉页面上有多媒体内容,并允许您下载该多媒体内容.

我不认为有可能阻止IDM抓取视频/音频,但有没有办法欺骗IDM来取代错误的视频,或者让IDM很难猜出哪个是真正的视频/音频播放?

编辑:实际上我的问题是从服务器端的角度来看,而不是运行IDM的客户端.所以我想这里的误解是我的错.这里有很多好的答案,但不是我想要的那个

packet-capture video-streaming audio-streaming

10
推荐指数
2
解决办法
9万
查看次数

通过TCP发送音频流,UnsupportedAudioFileException

我成功地通过TCP套接字发送和读取文本和图像数据.但我无法发送和读取音频流数据.

服务器上的示例代码:

public class ServerAudio {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        try {
            ServerSocket serverSocker = new ServerSocket();
            Socket client = null;
            serverSocker.bind(new InetSocketAddress(6666));
            if (serverSocker.isBound()) {
                client = serverSocker.accept();
                OutputStream out = client.getOutputStream();
                while (true) {
                    AudioInputStream ain = testPlay("C:/Users/Public/Music/Sample Music/adios.wav");
                    if (ain != null) {
                        AudioSystem.write(ain, AudioFileFormat.Type.WAVE, out);
                    }
                }
            }
            serverSocker.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public static AudioInputStream testPlay(String filename) {
        AudioInputStream …
Run Code Online (Sandbox Code Playgroud)

java sockets tcp audio-streaming

10
推荐指数
2
解决办法
2万
查看次数

Icecast和Darkice的高音频延迟

我已经成功地在我的ubuntu机器上安装了icecast和darkice,并能够在我的局域网上直播.但令我失望的是它有15秒到20秒的延迟.这是非常糟糕的表现.我不认为这是因为我的局域网连接,因为即使我试图在同一台ubuntu机器上听也有延迟!

我试图将icecast配置为没有突发大小,这意味着没有缓冲,这有助于我将延迟减少到大约6秒到8秒.所以,如果您有任何建议或非常好的配置值,那将对我有很大的帮助.

PS我正在播放的格式是mp3.有人建议我应该使用opus编解码器,但我不认为icecast或darkice支持它.

audio-streaming low-latency internet-radio icecast

10
推荐指数
1
解决办法
1万
查看次数

直播音频流java

我正在实现从MIC到另一台PC上的java服务器的实时流媒体.但我只听到白噪声.

我已经附加了客户端和服务器程序

Client:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;

public class Mic 
{
    public byte[] buffer;
    private int port;
    static AudioInputStream ais;

    public static void main(String[] args)
    {
        TargetDataLine line;
        DatagramPacket dgp; 

        AudioFormat.Encoding encoding = AudioFormat.Encoding.PCM_SIGNED;
        float rate = 44100.0f;
        int channels = 2;
        int sampleSize = 16;
        boolean bigEndian = true;
        InetAddress addr;


        AudioFormat format = new AudioFormat(encoding, rate, sampleSize, channels, …
Run Code Online (Sandbox Code Playgroud)

java sockets audio-recording audio-streaming

10
推荐指数
1
解决办法
1万
查看次数

根据正在录制的WAV音频,使用C#中的VLC创建http音频流

我正在使用NAudio库来记录系统麦克风输入 - 连续.

private void RecordStart() {
        try {
            _sourceStream = new WaveIn {
                DeviceNumber = _recordingInstance.InputDeviceIndex,
                WaveFormat =
                    new WaveFormat(
                    44100,
                    WaveIn.GetCapabilities(_recordingInstance.InputDeviceIndex).Channels)
            };
            _sourceStream.DataAvailable += SourceStreamDataAvailable;
            _sourceStream.StartRecording();
        } catch (Exception exception) {
            Log.Error("Recording failes", exception);
        }
}
Run Code Online (Sandbox Code Playgroud)

有一个事件处理程序,只要有数据,它就会从记录流中获取数据.

我能够使用现有的音频文件创建一个音频(mp3)HTTP流媒体,并在我的系统中安装VLC播放器.

const int portNumber = 8089;
const string streamName = "fstream_1789846";
const string audio = "C:\\Recording\\Audio\\1789846.wav";
const string windowQuiet = "-I dummy --dummy-quiet";
const string tanscode = ":sout=#transcode{vcodec=none,acodec=mp3,ab=128,channels=2,samplerate=44100}";
var stream = String.Format(@":http{{mux=mp3,dst=:{0}/{1}}}", portNumber, streamName);
const string keep = ":sout-keep"; …
Run Code Online (Sandbox Code Playgroud)

c# vlc audio-streaming bass http-live-streaming

10
推荐指数
0
解决办法
1138
查看次数

将opus音频rtp流式传输到Android设备

我想用ffmpeg直接将音频(opus编解码器)流式传输到android设备.

在PC上我开始流:

  ./ffmpeg -re -stream_loop -1 -i akgld-c8mxm.opus -acodec libopus -ac 1 -ab 96k -vn -f rtp rtp://192.168.0.100:6000
Run Code Online (Sandbox Code Playgroud)

其中192.168.0.100 - 我手机的本地wifi地址.

在Android设备上我尝试播放流:

 public void tryPlayStream() {
        String ip = Utils.wifiIpAddress(this);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
        StrictMode.setThreadPolicy(policy);
        AudioManager audio = (AudioManager) getSystemService(AUDIO_SERVICE);
        audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
        audioGroup = new AudioGroup();
        audioGroup.setMode(AudioGroup.MODE_ECHO_SUPPRESSION);
        InetAddress inetAddress;
        try {
            inetAddress = InetAddress.getByName(ip);
            audioStream = new AudioStream(inetAddress);
            audioStream.setCodec(AudioCodec.PCMA);
            audioStream.setMode(RtpStream.MODE_RECEIVE_ONLY);
            InetAddress inetAddressRemote = InetAddress.getByName(ip);
            audioStream.associate(inetAddressRemote, 6000);
            audioStream.join(audioGroup);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

在logcat中我看到下一行:

E/AudioRecord: AudioFlinger could not …
Run Code Online (Sandbox Code Playgroud)

audio android ffmpeg audio-streaming opus

10
推荐指数
1
解决办法
717
查看次数

在网站上直播音频

我正在尝试为互联网广播电台建立一个网站.我想加入一项功能,允许访问者在网站上播放实时音频流.

我应该开始考虑哪些技术?这通常是怎么做的?有没有一种方法通常被认为是最好的直播?

audio-streaming internet-radio

9
推荐指数
1
解决办法
3767
查看次数