我正在开发一个广播流应用程序,几分钟后音频总是在后台停止。
显现:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
Run Code Online (Sandbox Code Playgroud)
服务等级:
public class StreamService extends Service implements MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener, MediaPlayer.OnInfoListener {
private static final String STREAM_URL = "http://bbcwssc.ic.llnwd.net/stream/bbcwssc_mp1_ws-einws";
MediaPlayer mediaPlayer = null;
private WifiManager.WifiLock mWifiLock;
public int onStartCommand(Intent intent, int flags, int startId) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(STREAM_URL);
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mediaPlayer.setOnErrorListener(this);
mediaPlayer.setOnBufferingUpdateListener(this);
mediaPlayer.setOnInfoListener(this);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.setLooping(true);
if (mWifiLock == null) {
mWifiLock = ((WifiManager) Objects.requireNonNull(getApplicationContext().getSystemService(Context.WIFI_SERVICE)))
.createWifiLock(WifiManager.WIFI_MODE_FULL, "mediaplayerlock");
}
mediaPlayer.setWakeMode(getApplicationContext(), …Run Code Online (Sandbox Code Playgroud) 现代时代已经成为视频流\xe2\x80\x94,无论是直播还是录制视频。
\n在学习过程中,我确实遇到了问题主题中提到的各种协议。协议越多,用例就越有趣;话虽如此,我无法找到适当的比较评估和用例。
\n有人可以帮助了解用例和关键差异,以便了解何时使用哪个?
\n另外,有什么统一的协议可以在浏览器、桌面应用程序和移动应用程序(Android 和 iOS)中显示流吗?
\n提前致谢。
\nyoutube-dl可用于查看使用什么格式存储 YouTube 内容:
youtube-dl -F https://youtu.be/??????
Run Code Online (Sandbox Code Playgroud)
上面的命令提示音频和视频大多是分开存储的。这样对吗?YouTube 流媒体是否实时结合音频和视频?
我们部署了一个人工智能模型来传输麦克风中的音频并向用户显示语音文本。像这样的东西。
在前端,我尝试每秒将音频块作为 Int16Array 发送到后端。另外为了确保与麦克风和音频相关的一切工作正常,停止录制后我只能下载音频的第一个块,持续时间为 1 秒,这是非常清晰的。然而,当音频被打磨到后端时,它会变成一些噪音!
这是处理录音时的 React 代码部分:
useEffect(()=> {
if (recorder === null) {
if (isRecording) {
requestRecorder().then(setRecorder, console.error);
} else {
return;
}
}
// Manage recorder state.
if (isRecording && recorder) {
recorder.start();
} else if (!isRecording && recorder) {
recorder.stop();
}
// send the data every second
const ineterval = setInterval(() => {
if (recorder) …Run Code Online (Sandbox Code Playgroud) audio speech-recognition audio-streaming speech-to-text web-mediarecorder
我正在尝试将音频和商店录制到SD卡中以及发送到服务器.当我试图播放录制的声音时,但不是我录制的.如果我录制语音10分钟,它将播放4分钟,即有人按下快进按钮并发出一些嘈杂的声音.我没有得到我错的地方.任何人都可以说我如何解决这个问题(应该播放我记录了多少,即记录10分钟然后应该只播放10分钟).
这是代码..抱歉发布批量代码..
public class Audio_Call extends Activity {
private static final int RECORDER_BPP = 16;
private static final String AUDIO_RECORDER_FILE_EXT_WAV = "AudioRecorder.wav";
private static final String AUDIO_RECORDER_FOLDER = "AudioRecorder";
private static final String AUDIO_RECORDER_TEMP_FILE = "record_temp.raw";
private static final int RECORDER_SAMPLERATE = 8000;
private static final int RECORDER_CHANNELS = AudioFormat.CHANNEL_IN_MONO;
private static final int RECORDER_AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;
private AudioRecord recorder = null;
// private int bufferSize = 200000;
private int bufferSize = 0;
short[] buffer;
private Thread recordingThread = null; …Run Code Online (Sandbox Code Playgroud) 我正在做类似的事情,如从iPod库中流式传输音频,通过网络或蓝牙发送数据,以及使用音频队列播放.
感谢您提出这个问题和代码.帮助我很多.
我有两个问题.
我应该从一台设备发送到另一台设备?CMSampleBufferRef?AudioBuffer?MDATA?AudioQueueBuffer?包?我不知道.
当应用程序完成播放时,它崩溃了,我收到错误(-12733).我只是想知道如何处理错误而不是让它崩溃.(检查OSState?发生错误时,停止吗?)
错误:无法读取样本数据(-12733)
我是一名php开发人员,正在尝试开发一个网站,向用户传播点播音乐.经过大量的谷歌搜索后,我对我应该使用哪种服务器或工具感到困惑?我见过一些像WOWZA或SHOUTCAST,但我不知道哪一个最符合我的需求.
我想提供高质量的音频文件.所以也许我应该使用320kbps的mp3格式或其他东西,但质量相同.
我不需要直播.我只需要音乐文件的按需流媒体和用户创建他/她自己的播放列表的能力.
用户不应该能够下载音乐文件.
我正在开发一个应用程序,您可以在其中录制音频剪辑,将其上传到Parse.com上的数据库,然后从Parse.com检索音频剪辑并播放它.
我能够在Parse.com上录制和上传音频文件,但我不知道该如何处理最后一步!在这里,您可以看到我如何在Parse.com上保存和存储音频片段:
byte[] data = outputFile.getBytes();
//ParseUser currentUser = ParseUser.getCurrentUser();
//String usernameText = currentUser.getUsername();
Calendar c = Calendar.getInstance();
String mUploadName = c.get(Calendar.SECOND) + "_recording.mp3";
ParseFile file = new ParseFile(mUploadName, data);
file.saveInBackground();
// _PostStructure is the class where I've wrote the "set" and "get" methods to use the database on Parse.com
_PostStructure new_audiofile = new _PostStructure();
new_audiofile.setAudioFile(file);
new_audiofile.saveInBackground();
Run Code Online (Sandbox Code Playgroud)
这是我尝试从Parse.com检索和播放音频剪辑:
mediaPlayer = new MediaPlayer();
ParseQuery<ParseObject> query = ParseQuery.getQuery("MyClass");
query.getInBackground("jZAetQnISj", new GetCallback<ParseObject>() {
public void done(ParseObject recording, com.parse.ParseException e) {
if (e != …Run Code Online (Sandbox Code Playgroud) audio android audio-streaming android-mediaplayer parse-platform
摘要:有一个带播放器的页面可以加载音频文件并播放它.网页上使用的播放器是jwplayer.我需要找到一种方法来确定音频文件是否正在流式传输到播放器.
背景:在我的研究中,我发现如果我使用像X-Accel-Redirect这样的nginx标题 - 该文件将被流式传输.我已经使用nginx + apache组合设置了web服务器(nginx是apache的反向代理),之后我将jwplayer指向了mp3文件 - 它正在工作.我的意思是我能够点击音频时间轴上的任何地方,它立即开始播放声音.但是,既然我还没有设置标题,并添加了播放器已经运行的事实 - 这就是我需要检查我的问题并确切知道的原因.
我自己的一些想法:JwPlayer本身支持某种缓冲,所以我不知道它是否只是下载我正在测试这个函数的mp3文件,或者它接收流并播放它.
有没有办法检查并确定?关于我所有这一切的唯一想法是检查访问日志,但我不知道要查找什么,或者我是否需要特殊的日志格式来查看这些需要的数据.
在我研究这个问题时,我得到了一些奇怪的下载相关主题以及关于带有"范围"的HTTP标题的内容,但我不确定它是否与流媒体相关.
请指教.
所以我有一些音频处理dll,我想知道如何确定处理器的字节顺序.我知道Visual Studio定义了一些处理器宏,但我找不到它们的完整列表.我希望这是一个编译时检查,因为我可能会为不同的处理器编译它.
编辑:我也瞄准Windows.我听说Windows只使用Little Endian,这是真的吗?
processor endianness audio-streaming visual-c++ visual-studio-2012
audio-streaming ×10
audio ×4
android ×3
audioqueue ×1
audiorecord ×1
core-audio ×1
endianness ×1
ios ×1
jwplayer ×1
media ×1
nginx ×1
processor ×1
streaming ×1
video ×1
visual-c++ ×1
web-services ×1
youtube ×1