Red5 サーバーをインストールしました。oflaDemo と同じカスタム アプリケーションを作成しました。アプリケーションの /streams フォルダでビデオを再生できます。アプリケーション名は demo です。アプリケーションがビデオにアクセスしているディレクトリ RED5_HOME/demo/webapps/streams を、共有マシンのフォルダに変更したいと考えています。「c:\streams」など、ローカル マシンのディレクトリに変更できます。IStreamFilenameGenerator を実装する CustomFileNameGenerator を使用してこれを達成しました。しかし、共有フォルダにアクセスできません。これが私の CustomFileNameGenerator クラスです
import java.io.File;
import org.apache.log4j.Logger;
import org.red5.server.api.scope.IScope;
import org.red5.server.api.stream.IStreamFilenameGenerator;
public class CustomFilenameGenerator implements IStreamFilenameGenerator {
Logger log = Logger.getLogger(CustomFilenameGenerator.class);
/** Path that will store recorded videos. */
/public String recordPath = "recordedStreams/";/
/** Path that contains VOD streams. */
public String playbackPath;
/** Set if the path is absolute or relative */
public Boolean resolvesAbsolutePath;
public String generateFilename(IScope scope, String name, GenerationType type) {
// Generate filename without an extension.
return generateFilename(scope, name, null, type);
}
public String generateFilename(IScope scope, String name, String extension, GenerationType type) {
String filename = null;
if (type == GenerationType.PLAYBACK)
{
filename = playbackPath + name;
}
log.info("file Name " + filename);
if (extension != null)
// Add extension
filename += extension;
log.info("Extension and file name " + filename);
return filename;
}
public boolean resolvesToAbsolutePath()
{
log.info("resolvesAbsolutePath" + resolvesAbsolutePath);
return resolvesAbsolutePath;
}
public void setPlaybackPath(String playbackPath) {
this.playbackPath = playbackPath;
}
public void setResolvesAbsolutePath(Boolean resolvesAbsolutePath) {
this.resolvesAbsolutePath = resolvesAbsolutePath;
}
}
以下は、私の red5-web.properties ファイルのプロパティです。
webapp.contextPath=/demo
webapp.virtualHosts=*, 192.168.1.20, 192.168.1.20:8088, 127.0.0.1:8088, 192.168.1.20:1935
playbackPath=C://streams/
resolvesAbsolutePath=true
以下は、私の red5-web.xml ファイルの Bean 定義です。
<bean id="streamFilenameGenerator" class="com.abhinow.demo.CustomFilenameGenerator" >
<property name="playbackPath" value="${playbackPath}" />
<property name="resolvesAbsolutePath" value="${resolvesAbsolutePath}" />
</bean>
上記のコードは正常に機能しており、C:\streams フォルダーでビデオを再生できますが、再生パスを /192.168.1.20/streams などの共有フォルダーに変更すると機能しません。Windowsコンピューターを使用しています。また、Windows のマップ ネットワーク ドライブ機能を使用して共有フォルダー /192.168.1.20/streams をネットワーク ドライブにマップし、そのドライブに Z: という名前を付けてみました。次に、パス Z://streams を指定してみましたが、今も機能していません。誰でも私が間違っているところを助けてください。私はそれに2日間苦労しています。この問題を解決するために私を助けてください。
よろしくお願いします。