[RAILS] Comment jouer de la voix ou de la musique en utilisant javascript

Préface

Je suis débutant depuis 3 mois depuis que j'ai commencé à apprendre la programmation par moi-même. J'ai été aidé par les articles des pionniers alors que je continuais à étudier tout en frappant le mur plusieurs fois. J'ai décidé de publier un article dans l'espoir qu'il aiderait ceux qui sont inquiets.

Cet article est basé sur ce que j'ai recherché à partir du désir de lire de l'audio lors d'événements Javascript (ci-après abrégé en JS) et d'un traitement spécifique lors du processus de création d'une application Web. Je vais. À l'origine, HTML a un élément audio et vous pouvez lire de l'audio en spécifiant l'emplacement du fichier dans l'attribut src de l'élément audio. Cependant, dans l'environnement Rails, la spécification de l'emplacement du fichier ne fonctionnait pas, et à la suite d'un trébuchement, j'ai décidé d'utiliser une gemme appelée "audiojs-rails".

Objectif#

Dans cet article, je vais le décrire dans le but de "Masquer le lecteur de lecture et jouer le son lorsque le bouton Entrée HTML est enfoncé". Si vous l'organisez, il sera possible de le lire après qu'un processus spécifique soit terminé.

environnement d'utilisation

OS:Win10 Rails 5.2.4.4 Ruby 2.6.6 Actuellement en développement dans un environnement local

table des matières#

◆ Comment installer et utiliser Gem ◆ Arrangé pour qu'il puisse être joué par un événement spécifique ◆ Cachez le lecteur de lecture!

◆ Comment installer et utiliser Gem pour utiliser

1. 1. Ajoutez le contenu suivant au Gemfile et effectuez l'installation du bundle.
gem 'audiojs-rails'
2. Initialisation de audiojs et installation du lecteur de lecture

Décrivez le contenu suivant dans la vue dans laquelle vous souhaitez lire les données audio. Un lecteur de lecture est créé par audiojs.createAll ().

<!--Jouez au joueur-->
<%= audio_tag 'sample.mp3' %>

<!--initialisation de audiojs-->
<script>
    const audioPlayer = audiojs.createAll();
</script>
3. 3. Ajouter le chemin d'accès aux éléments

"Sample.mp3" chargé par le lecteur de lecture installé ci-dessus est le nom du fichier audio. Vous pouvez préparer votre fichier préféré, mais faites attention à l'emplacement de stockage. Assurez-vous de le placer dans app / assets / audios /. (Je l'ai créé parce que je n'avais pas le dossier audios, mais cela a bien fonctionné.)

Cependant, il ne peut pas être utilisé simplement en l'enregistrant, alors ajoutez un chemin d'actifs pour la livraison dans le pipeline d'actifs. Ajoutez ce qui suit à config / initializers / assets.rb.

config/initializers/assets.rb


Rails.application.config.assets.paths << Rails.root.join("app", "assets", "audios")
4. Vérifiez si le chemin des ressources a été ajouté.

Sur la ligne de commande que vous utilisez, lancez la console Rails et saisissez ce qui suit:

Rails.application.config.assets.paths

En conséquence, il semble qu'il n'y ait aucun problème si le chemin du dossier avec des audios à la fin est lu.

"C:/Users/sample/ruby/webapp/app/assets/audios"

Après avoir confirmé que le chemin a été ajouté, voyons s'il peut être lu. Si vous pouvez y jouer, vous êtes prêt à partir.

◆ Arrangez-vous pour qu'il puisse être joué par un événement spécifique.

1. Ajoutez une balise d'entrée à View, définissez l'ID et lisez-la avec Script.

Cette fois, j'attribue un ID appelé opération à une variable.

python



<input type="submit" id="operation">
<script>
    const operation = document.getElementById("operation");
    const audioPlayer = audiojs.createAll();
</script>
2. Lecture Lit l'audio lorsque les informations du lecteur sont affectées à la variable audio et que l'entrée est cliquée.

python



<input type="submit" id="operation">
<script>
    const operation = document.getElementById("operation");
    const audioPlayer = audiojs.createAll();
#Contenu ajouté à partir d'ici
    const audio = audioPlayer[0];

    operation.addEventListener("click", () => {
        audio.play();
    });
#Jusque là
</script>

Je ne comprends pas exactement pourquoi vous devez mettre audioPlayer [0] pour l'audio, Lorsque j'ai examiné le contenu de audioPlayer sur Console.log, j'ai trouvé que c'était comme suit. キャプチャ.PNG L'audioPlayer contient les informations relatives à la génération du lecteur de lecture. Par conséquent, étant donné que le contenu du numéro d'index 0 contient des informations sur les fichiers audio et des informations liées à des opérations telles que la lecture et l'arrêt, il est supposé que cela peut ne pas fonctionner à moins que cela ne soit spécifié.

◆ Cachez le lecteur de lecture!

Tout ce que vous avez à faire est de placer Audio_tag dans les balises Div et de définir l'affichage CSS sur aucun.

<div class="none">
    <%= audio_tag 'decision48.mp3' %>
</div>    

finalement

Cette fois, j'ai essayé de résumer le contenu de la manipulation des informations de divers articles à ma manière. Si vous avez des questions, veuillez nous en informer. Je vais également résumer les articles auxquels j'ai fait référence, donc si vous êtes intéressé, faites-le!

[Rails] Procédure depuis l'installation des audiojs-rails jusqu'à la lecture des fichiers audio ↑ Les options du lecteur de lecture sont également résumées. Si vous voulez jouer avec le lecteur de lecture, venez.

Recommended Posts

Comment jouer de la voix ou de la musique en utilisant javascript
Comment sortir Excel et PDF avec Excella
Comment exécuter une méthode et simuler avec JUnit
[Swift] Comment lire des chansons de la bibliothèque musicale
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment utiliser Play Framework sans utiliser l'activateur de sécurité
Comment autoriser à l'aide de graphql-ruby
Comment tester avec des images lors de l'utilisation d'ActiveStorage et de Faker
Différence entre Java et JavaScript (comment trouver la moyenne)
Comment définir et décrire des variables d'environnement à l'aide de Rails zsh
Comment joindre une table sans utiliser DBFlute et SQL
Comment lire un fichier MIDI à l'aide de l'API Java Sound
Comment utiliser StringBurrer et Arrays.toString.
Comment utiliser EventBus3 et ThreadMode
Comment appeler des classes et des méthodes
Comment utiliser l'égalité et l'égalité (comment utiliser l'égalité)
Comment connecter Heroku et Sequel
Comment convertir LocalDate et Timestamp
java Eclips Comment déboguer javaScript
Comment créer CloudStack à l'aide de Docker
Comment POST JSON dans la méthode Java en utilisant OkHttp3 et la méthode en utilisant HttpUrlConnection-
[Rails] Comment télécharger des images sur AWS S3 à l'aide de Carrierwave et de fog-aws
[Rails] Comment télécharger des images sur AWS S3 à l'aide de refile et refile-s3
Comment exécuter un contrat avec web3j
Comment utiliser OrientJS et OrientDB ensemble
[Android] Comment activer / désactiver le panneau de notification à l'aide de StatusBarManager
Comment installer Play Framework 2.6 pour Mac
Comment déployer sur AWS à l'aide de NUXTJS S3 et CloudFront officiels? Avec docker-compose
[Rails] Comment télécharger des images à l'aide de Carrierwave
Comment réaliser une recherche hybride en utilisant l'analyse morphologique et Ngram avec Solr
Comment utiliser BootStrap avec Play Framework
[Android] Comment transmettre des images et recevoir des rappels lors du partage à l'aide de ShareCompat
[Java] Comment sortir et écrire des fichiers!
Comment configurer et utiliser kapt
Comment créer SquashTM et comment prendre en charge le japonais
Comment trouver les dizaines et les unités
[Facile] Comment mettre à niveau Ruby et le bundler
[Swift5] Comment mettre en œuvre une animation à l'aide de "lottie-ios"
Comment utiliser les méthodes substring et substr
Pour implémenter la publication d'images à l'aide de rails
Comment utiliser @Builder et @NoArgsConstructor ensemble
Comment insérer des icônes à l'aide de Font awesome
Comment lire un fichier MIDI à l'aide de l'API Java Sound (spécifiez le périphérique MIDI à utiliser)
Différence entre Java, C # et JavaScript (comment trouver le degré d'obésité)
Promesse JDBC et exemple d'écriture
[Java] Comment utiliser la classe FileReader et la classe BufferedReader
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
[Ruby] Comment utiliser la méthode gsub et la sous-méthode
Comment supprimer un contrôleur, etc. à l'aide d'une commande
[Ethereum] Comment exécuter un contrat en utilisant web3j-Part 2-
Comment mettre en œuvre la fonction de chapelure avec Gretel
Comment utiliser le contrôle segmenté et les points à noter
Comment configurer et utiliser jEnv (Mac)