問題タブ [taglib-ruby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - taglib-ruby とリソース バランシング (ファイル ハンドルの解放) は?
友達、
非常に高速な (Gem-Server 経由で 0.2.1) ライブラリを使用してID3 タグをスキャンすることにより、 Ruby (1.9.3) スクリプトを使用して大量のオーディオ ファイルを処理しようとしています。taglib-ruby
これは私のコードの一部ですがaudio
、Ruby-String に完全なファイル パスが含まれています。
その後、処理のほぼ最後に問題が発生します。TagLibは読み取り権限がないことを訴えており、FileUtils.mv
後でファイルを移動できなくなりました。私のスクリプトはファイル ハンドルを解放しないため、TagLibが処理中に食べている可能性があります。
残念ながら、API に特定の Ruby メソッドが見つかりませんでした。最終的にTagLibs C 関数の 1 つまたは両方を呼び出します。taglib-ruby
libmagic
たとえば、Ruby バインディングはclose
そのMagic
クラス内に -Method を提供するため、ブロックが確実に動作するように解放します。
の正しい Ruby メソッドtaglib-ruby
が欠落しているだけですか、それとも現時点で欠落していますか? Ruby経由で取得したファイルハンドルを解放する別の方法はありますか?
ruby-on-rails - RoR TagLib-Ruby: DB に ID3 タグを設定する方法
事前に助けてくれてありがとう。
モデル MasterSong の属性としてデータベースに id3 タグ データを設定したいと考えています。具体的には、タイトル、アーティスト、アルバムです。
私のモデルでは、オブジェクト (master_song) が保存される前にコールバックを使用してデータを設定しています。
私の構文に問題があると確信しています。オブジェクトにエラーが発生したようです
コントローラの作成アクションは正常です:
ここで何が間違っていますか?更新: def set_id3_tags z = TagLib::MPEG::File.open(self.m_song.path) do |file| tag = file.id3v2_tag tag.title end self.update_attribute!(:title => z) end
スタック レベルが深すぎるというエラーが表示されるようになりました。
heroku - Taglib の依存関係として Vulcan を使用して、Heroku で cmake をビルドします。
Taglibを Heroku で動作させようとしているので、 taglib-ruby gemを使用できます。私は、Vulcan とカスタム Heroku ビルドパックを使って、それを機能させるために戦ってきました。Taglib の依存関係の 1 つは cmake であるため、最初にこれを機能させようとしています。
Vulcan を使用して cmake をビルドする方法を説明する Github の問題があります: Issue #32が、ビルド サーバーから同じ応答を受け取り続けます。
cmake が機能したら、Taglib のビルドはかなり簡単になるはずです。
私は、Vulcan を使用してバイナリ アプリケーションの依存関係を構築する方法についての Ryan Daigle の投稿をフォローしました。Vulcan サーバーへのリモート シェルを確立し、実行しました。
…ここで、「5382f498-fd89-4c1a-9269-e05815294f40」は、cmake ビルド エラー時に Vulcan によって返される ID ですが、上記と同じエラーが表示されます。
これを機能させるために、MAKE環境変数を何に設定する必要があるかについて、誰かが洞察を提供できますか?
heroku - Heroku はバンドル構成を無視しています
Heroku に gem 'taglib-ruby' をインストールしようとしています。この gem は、taglib と呼ばれるシステム依存関係を必要とするネイティブ拡張としてコンパイルされるため、heroku vulcan を介してコンパイルおよびアップロードした後、heroku bash のコマンドラインから gem をコンパイルすることができました。
そして、このパラメーターが後でバンドラーによって使用されるようにするために、次のコマンドを使用してバンドラー構成として追加しました。
ファイル /.bundle/config を検査し、BUNDLE_BUILD__TAGLIB-RUBY の行を探して、この構成が適用されていることを確認しました。
ただし、プロジェクトをherokuにプッシュした後、バンドルインストールコマンドを実行している間、herokuは、taglibライブラリが存在しないため、上記のgem(taglib-ruby)をインストールできないと不平を言いますが、それは私が解決しようとしていたものです上記のオプション「--with-opt-dir=/app/vendor/taglib」。
そのため、Heroku はバンドラーの設定を無視しているようです。
何が起こっている可能性がありますか?Heroku で同じ目的 (カスタム ビルド オプションを使用して gem をインストールする) を達成する別の方法を知っていますか?
ruby-on-rails - Taglib-Ruby を使用して Web アプリ用のカスタム Heroku Ruby/Rails Buildpack を構築する
taglib-ruby gem を利用する Rails 3.2 を使用してアプリケーションを構築しました。
このアプリを Heroku にアップロードする必要がありますが、関連する C++ taglib ライブラリをマシンにインストールする必要があるため、taglib-ruby gem を正常にビルドできません。
これにより、Vulcan を使用してカスタム ビルドパックを作成し、アプリをインストールすることにしました。
https://github.com/heroku/vulcan/issues/32のアドバイスに従って、Vulcan を使用して cmake と taglib を正常にインストールできました。https://github.com/JllyGrnGiant/vulcan-buildpackでホストしているコンピューターに vulcan がダウンロードした結果のファイル
アプリのディレクトリに移動して実行すると
次に、アプリをプッシュしようとすると、ビルダーはビルドパックを正常に見つけますが、アプリのインストールを続行する方法がわかりません
これは、デフォルトの Ruby ビルドパックをフォークする必要があるためだと思います。
今、私たちは私の問題に到達しました。私はデプロイメントに関してあまり詳しくないので、taglib ファイルをどこに含めるべきか、また変更すべき他のファイルがわからないので、アプリをプッシュすると、これらの taglib ライブラリが見つかり、taglib-ruby gem がビルドされます。Heroku の Web サイトのヘルプのパッケージ化バイナリ セクションは、バイナリは持っていないが、ヘッダー ファイルとライブラリがたくさんあるという問題のコンテキストでは言うまでもなく、私にはあまり意味がありません。
taglib-ruby と Heroku についてこの質問をした他の人は、私にとっては問題なく完了した cmake のインストールに成功していません。また、Ruby/Rails のカスタム ビルドパックにライブラリを含める方法を説明するリソースを見つけることができませんでした。アプリ。
どんな助けでも大歓迎です。お時間をいただきありがとうございます。
ruby - MP3 ID3V2 APIC を jpeg ファイルに保存
taglib-ruby を使用して APIC 画像を読み取ってファイルに保存しようとしていますが、その方法を理解するのに苦労しています。私が言えることから、画像は「image/jpeg」とASCII-8BITです。誰でもこれを達成しようとしましたか?
ruby-on-rails - 初期化されていない定数 ActivityObjects::BuildController::TagLib
レールでtaglibを使用しようとしました。このコード (以下を参照) をコントローラーに入れましたが、「uninitialized constant ActivityObjects::BuildController::TagLib」というエラーが発生しました。
レールでtaglibを使用する方法はありますか?
ruby-on-rails - taglib(-ruby)で特定のファイルが読み込めない
ドロップボックスフォルダーから曲をダウンロードし、いくつかのメタタグを抽出するなど、いくつかのアクションを実行するルビーオンレールアプリを実装しています。現在、同じアルバムに属する 10 個の mp3 を使用しているため、エンコードなどは同じです。ただし、taglib-rubyを使用してメタタグを読み取ろうとすると、10 個のファイルのうち 3 個で次のようにエラーがスローされます。
ここで左側にあるコードをガイドとして使用したところ、次のようになりました。
最初はダウンロードしたファイルが壊れているのではないかと思いましたが、nautilus でメタデータを確認すると問題なく、Rhismbox でも再生できます。アーティストとタイトルを取得する必要があるだけで、さまざまな形式のファイルから取得できるようにする必要があるため、形式固有のものではなく、taglib-ruby の Basic API を使用したいと考えています。
これを修正する方法はありますか?私がこのトピックに関して初心者であることを考えると、非常に明白な何かが欠けている可能性があります。
編集:ロビンストのコメントを考慮して、これはls -l
それぞれのファイルのリストです: