gpt4 book ai didi

javascript - 在 WinJS 应用程序中获取录制的声音表示

转载 作者:行者123 更新时间:2023-11-28 08:44:55 24 4
gpt4 key购买 nike

您好。

我想要使用 HTML 和 JavaScript 创建 Windows 8 应用程序,并且想要录制声音并用图形实时表示声音变化。我关注了这个article并能够记录 将声音转换为 mp3 文件。此外,我想要实现的是附加到一些事件,该事件为我提供有关录音机声音的实时信息。然后使用该数据,我想对其进行分析,获取声音表示的全部或部分离散点, 将它们转换为 JSON(例如),然后可视化该信息。我拥有所有可用资源,除非我无法获得实时表示。我研究了“oMediaCapture”对象(参见下面的代码),但无法获得这样的功能。 然后我尝试使用stream并希望它能提出这样的功能。但是当我尝试按照 MSDN article 创建“RandomAccessStream”时出现异常

var stream = new Windows.Storage.Streams.RandomAccessStream();

这是我的完整代码:

(function InitSound() {
var settings = initCaptureSettings();
initMediaCapture(settings);
})();


function initCaptureSettings() {
var captureInitSettings = null;
captureInitSettings = new Windows.Media.Capture.MediaCaptureInitializationSettings();
captureInitSettings.audioDeviceId = "";
captureInitSettings.streamingCaptureMode = Windows.Media.Capture.StreamingCaptureMode.audio;
captureInitSettings.realTimeModeEnabled = true;
return captureInitSettings;
}

function initMediaCapture(captureInitSettings) {
oMediaCapture = null;
oMediaCapture = new Windows.Media.Capture.MediaCapture();
oMediaCapture.initializeAsync(captureInitSettings).then(function (result) {
createProfile();
}, errorHandler);
}

function createProfile() {
profile = Windows.Media.MediaProperties.MediaEncodingProfile.createMp3(Windows.Media.MediaProperties.AudioEncodingQuality.high);
}

function errorHandler(e) {

}

function recordSound() {
var stream = new Windows.Storage.Streams.RandomAccessStream();
oMediaCapture.startRecordToStreamAsync(profile, stream).then(function (result) {

}, errorHandler);
/*Windows.Storage.KnownFolders.videosLibrary.createFileAsync("checkMic.mp3", Windows.Storage.CreationCollisionOption.generateUniqueName).then(function (newFile) {
storageFile = newFile;
oMediaCapture.startRecordToStorageFileAsync(profile, storageFile).then(function (result) {

}, errorHandler);
});*/
}

function stopRecord() {
//oMediaCapture.stopRecordAsync().then(function (result) {
// storageFile.openAsync(Windows.Storage.FileAccessMode.read).then(function (stream) {
// oMediaCapture.startRecordToStreamAsync(profile, stream).then(function (result) {

// }, errorHandler);
// });
//}, errorHandler);
}

那么您是否发现明显的错误或只是方法错误?

提前谢谢您!

致以诚挚的问候,

尼古拉·阿利皮耶夫

最佳答案

这对于 WInJS 的当前功能来说似乎是不可能的。为了能够获取音频实时信息,需要进行C++。这是微软sample 。你也可以看看我在微软forum中得到的答案

关于javascript - 在 WinJS 应用程序中获取录制的声音表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com