Информация о версии:
cordova версия 12.0.0
cordova-media-plugin версия 7.0.0< /p>
cordova-plugin-file версии 8.1.0
cordova-plugin-file-transfer версии 2.0.0
cordova-plugin-wkwebview-file-xhr версия 3.1.1
Android Target SDK = 34
Проблема/вопрос:< /strong>
Мне не удается заставить приложение на основе Cordova воспроизводить файл, загруженный в папку «Внутренняя память/Музыка» устройства Android. Приведенная ниже функция downloadAudio работает правильно и сохраняет файл там (хотя в документации плагина к файлам указано, что это место — SD-карта, но на моем устройстве это работает не так).
[*]Может ли медиа-плагин воспроизводиться из папки «file:///storage/emulated/0/Music/[file].mp3»? Похоже, мне нужна ссылка на cdvfile для медиа-плагина, но я не уверен, что формат «cdvfile://» работает и с этим внешним расположением. Казалось бы, это предназначено только для использования внутри приложения?
[*]Я не могу получить ни один из методов преобразования URL-адресов (например, toURL выдает мне TypeError: fileTransferInternalUrl.toURL не является функцией) для работать с местоположением моего файла, не возвращая ошибку, чтобы сгенерировать URL-адрес компакт-диска для медиа-плагина.
[*]Если медиа-плагин не поддерживает воспроизведение со ссылкой на внешнее местоположение приложения, Можно ли использовать copyTo (и перезаписать существующий файл) из внешнего местоположения во временное внутреннее местоположение, доступное медиа-плагину? (Документация copyTo, по-видимому, отсутствует в более поздних версиях документации по файловому плагину, и при ее использовании я также сталкиваюсь с ошибками. Можно предоставить более подробную информацию, если это возможно.
Копирование файла с помощью Cordova
не помогло ни мне, ни примеру на
https://cordova .apache.org/docs/en/2.4.0/cordova/file/fileentry/fileentry.html.
Я не получаю никаких ошибок, связанных с разрешениями. Я не думаю, что это возможно. загрузка работала бы, если бы это была проблема с разрешениями (?). Я знаю, что в разрешениях Android были изменения.
Буду очень признателен за любую помощь!
function downloadAudio (fileTransferWebUrl,thisElement) {
fileTransferWebUrl = encodeURI(fileTransferWebUrl);
if (isAndroidApp == true) {
var fileNameMP3Array = fileTransferWebUrl.split("/");
var fileNameMP3 = fileNameMP3Array[fileNameMP3Array.length-1]; //get file name from web URL
fileTransferInternalUrl = cordova.file.externalRootDirectory + 'Music/' + fileNameMP3; // file:///storage/emulated/0/Music/[file].mp3
}
try {
fileTransfer.download(
fileTransferWebUrl,
fileTransferInternalUrl,
function (entry) {
alert('Download complete to Music/' + fileNameMP3);
},
function(error){ //error
alert("Download error source " + error.source + " download error target " + error.target + " download error code " + error.code + " http_status " + error.http_status + " body " + error.body + " exception " + error.exception);
},
true, //trust all hosts. safer to be false, set to true accepts all security certificates, not recommended for production use
);
}
catch (e) {
alert(e);
}
}
function playDownloadedAudio (fileTransferWebUrl, thisElement) {
var nativePath = "";
fileTransferWebUrl = encodeURI(fileTransferWebUrl);
if (isAndroidApp == true) {
var fileNameMP3Array = fileTransferWebUrl.split("/");
var fileNameMP3 = fileNameMP3Array[fileNameMP3Array.length-1]; //get file name from web URL
fileTransferInternalUrl = cordova.file.externalRootDirectory + 'Music/' + fileNameMP3; //cordova.file.externalRootDirectory
alert(fileTransferInternalUrl); // file:///storage/emulated/0/Music/A_casa_vete_y_cuenta_alli.mp3
}
try {
nativePath = fileTransferInternalUrl; // how do I get this into a path Media plugin recognizes?
my_media = new Media(nativePath,
function () //success;
{ },
function (err) //error
{
alertOK(translate('Error in playback. Please contact support. \n Code: ','text') + error.code + '\n '+translate('Message:','text')+' '+error.message + '\n');
playing = false;
}
);
my_media.play();
}
catch (e) {
alert("error: " + e);
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... rage-music
Приложение на основе Cordova: как воспроизвести аудиофайл из внутренней памяти Android/папки «Музыка» ⇐ Android
Форум для тех, кто программирует под Android
1728196368
Anonymous
[b]Информация о версии:[/b]
cordova версия 12.0.0
cordova-media-plugin версия 7.0.0< /p>
cordova-plugin-file версии 8.1.0
cordova-plugin-file-transfer версии 2.0.0
cordova-plugin-wkwebview-file-xhr версия 3.1.1
Android Target SDK = 34
Проблема/вопрос:< /strong>
Мне не удается заставить приложение на основе Cordova воспроизводить файл, загруженный в папку «Внутренняя память/Музыка» устройства Android. Приведенная ниже функция downloadAudio работает правильно и сохраняет файл там (хотя в документации плагина к файлам указано, что это место — SD-карта, но на моем устройстве это работает не так).
[*]Может ли медиа-плагин воспроизводиться из папки «file:///storage/emulated/0/Music/[file].mp3»? Похоже, мне нужна ссылка на cdvfile для медиа-плагина, но я не уверен, что формат «cdvfile://» работает и с этим внешним расположением. Казалось бы, это предназначено только для использования внутри приложения?
[*]Я не могу получить ни один из методов преобразования URL-адресов (например, toURL выдает мне TypeError: fileTransferInternalUrl.toURL не является функцией) для работать с местоположением моего файла, не возвращая ошибку, чтобы сгенерировать URL-адрес компакт-диска для медиа-плагина.
[*]Если медиа-плагин не поддерживает воспроизведение со ссылкой на внешнее местоположение приложения, Можно ли использовать copyTo (и перезаписать существующий файл) из внешнего местоположения во временное внутреннее местоположение, доступное медиа-плагину? (Документация copyTo, по-видимому, отсутствует в более поздних версиях документации по файловому плагину, и при ее использовании я также сталкиваюсь с ошибками. Можно предоставить более подробную информацию, если это возможно.
Копирование файла с помощью Cordova
не помогло ни мне, ни примеру на
https://cordova .apache.org/docs/en/2.4.0/cordova/file/fileentry/fileentry.html.
Я не получаю никаких ошибок, связанных с разрешениями. Я не думаю, что это возможно. загрузка работала бы, если бы это была проблема с разрешениями (?). Я знаю, что в разрешениях Android были изменения.
Буду очень признателен за любую помощь!
function downloadAudio (fileTransferWebUrl,thisElement) {
fileTransferWebUrl = encodeURI(fileTransferWebUrl);
if (isAndroidApp == true) {
var fileNameMP3Array = fileTransferWebUrl.split("/");
var fileNameMP3 = fileNameMP3Array[fileNameMP3Array.length-1]; //get file name from web URL
fileTransferInternalUrl = cordova.file.externalRootDirectory + 'Music/' + fileNameMP3; // file:///storage/emulated/0/Music/[file].mp3
}
try {
fileTransfer.download(
fileTransferWebUrl,
fileTransferInternalUrl,
function (entry) {
alert('Download complete to Music/' + fileNameMP3);
},
function(error){ //error
alert("Download error source " + error.source + " download error target " + error.target + " download error code " + error.code + " http_status " + error.http_status + " body " + error.body + " exception " + error.exception);
},
true, //trust all hosts. safer to be false, set to true accepts all security certificates, not recommended for production use
);
}
catch (e) {
alert(e);
}
}
function playDownloadedAudio (fileTransferWebUrl, thisElement) {
var nativePath = "";
fileTransferWebUrl = encodeURI(fileTransferWebUrl);
if (isAndroidApp == true) {
var fileNameMP3Array = fileTransferWebUrl.split("/");
var fileNameMP3 = fileNameMP3Array[fileNameMP3Array.length-1]; //get file name from web URL
fileTransferInternalUrl = cordova.file.externalRootDirectory + 'Music/' + fileNameMP3; //cordova.file.externalRootDirectory
alert(fileTransferInternalUrl); // file:///storage/emulated/0/Music/A_casa_vete_y_cuenta_alli.mp3
}
try {
nativePath = fileTransferInternalUrl; // how do I get this into a path Media plugin recognizes?
my_media = new Media(nativePath,
function () //success;
{ },
function (err) //error
{
alertOK(translate('Error in playback. Please contact support. \n Code: ','text') + error.code + '\n '+translate('Message:','text')+' '+error.message + '\n');
playing = false;
}
);
my_media.play();
}
catch (e) {
alert("error: " + e);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79057777/cordova-based-app-how-to-play-an-audio-file-from-android-internal-storage-music[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия